07/09/2018, 15:18

Các phương thức HTTP: GET vs POST

Hai phương thức HTTP được sử dụng nhiều nhất là: GET và POST. HTTP là gì? Giao thức truyền siêu văn bản (HTTP) được thiết kế để cho phép truyền thông giữa các máy client và máy chủ. HTTP hoạt động dưới dạng giao thức yêu cầu phản hồi giữa máy client và máy chủ. ...

Hai phương thức HTTP được sử dụng nhiều nhất là: GET và POST.

HTTP là gì?

Giao thức truyền siêu văn bản (HTTP) được thiết kế để cho phép truyền thông giữa các máy client và máy chủ. HTTP hoạt động dưới dạng giao thức yêu cầu phản hồi giữa máy client và máy chủ.

Trình duyệt web có thể là ứng dụng client, và một ứng dụng trên máy tính lưu trữ một trang web có thể là máy chủ.

Ví dụ: client (trình duyệt) gửi yêu cầu HTTP tới máy chủ; sau đó máy chủ trả về một phản ứng choclient. Phản hồi chứa thông tin trạng thái về yêu cầu cũng có thể chứa nội dung được yêu cầu.

Hai phương thức yêu cầu HTTP: GET và POST

Hai phương pháp thường được sử dụng cho một yêu cầu phản hồi giữa client và máy chủ là: GET và POST.

  • GET – Yêu cầu dữ liệu từ một nguồn cụ thể
  • POST – Gửi dữ liệu được xử lý đến một tài nguyên được chỉ định

Phương thức GET

Lưu ý rằng chuỗi truy vấn (cặp tên / giá trị) được gửi trong URL của một yêu cầu GET:

/test/demo_form.php?name1=value1&name2=value2

Một số lưu ý khác về yêu cầu GET:

  • Yêu cầu GET có thể được lưu trữ
  • Yêu cầu GET vẫn còn trong lịch sử trình duyệt
  • Yêu cầu GET có thể được đánh dấu
  • Yêu cầu GET không nên được sử dụng khi xử lý dữ liệu nhạy cảm
  • Yêu cầu GET có giới hạn chiều dài
  • Yêu cầu GET chỉ nên được sử dụng để lấy dữ liệu

Phương thức POST

Lưu ý rằng chuỗi truy vấn (cặp tên / giá trị) được gửi trong phần nội dung thư HTTP của yêu cầu POST:

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

Một số lưu ý khác về yêu cầu POST:

  • Yêu cầu POST không bao giờ được lưu trữ
  • Yêu cầu POST không còn trong lịch sử trình duyệt
  • Yêu cầu POST không được đánh dấu
  • Yêu cầu POST không có hạn chế về chiều dài dữ liệu

So sánh GET và POST

Bảng sau đây so sánh hai phương thức HTTP: GET và POST.

GET  POST
BACK button/Reload  Không tác dụng  Dữ liệu sẽ được gửi lại (trình duyệt sẽ cảnh báo người dùng rằng dữ liệu sắp được gửi lại)
 Bookmarked  Có thể đánh dấu trang  Không thể đánh dấu trang
 Cached  Có thể được lưu trữ  Không được lưu trữ
 Encoding type  Ứng dụng / x-www-form-urlencoded  Ứng dụng / x-www-form-urlencoded hoặc multipart / form-data. Sử dụng mã hóa nhiều phần cho dữ liệu nhị phân
 History  Các tham số vẫn còn trong lịch sử trình duyệt  Các tham số không được lưu trong lịch sử trình duyệt
 Restrictions on data length  Có, khi gửi dữ liệu, phương thức GET thêm dữ liệu vào URL. Và độ dài của URL bị giới hạn (chiều dài URL tối đa là 2048 ký tự)  Không hạn chế
 Restrictions on data type  Chỉ cho phép các ký tự ASCII  Không hạn chế. Dữ liệu nhị phân cũng được phép
 Security  GET không an toàn so với POST vì dữ liệu được gửi là một phần của URL  POST an toàn hơn GET vì các tham số không được lưu trữ trong lịch sử trình duyệt hoặc trong các bản ghi của máy chủ web
 Visibility  Không bao giờ sử dụng GET khi gửi mật khẩu hoặc các thông tin nhạy cảm khác!
Dữ liệu được hiển thị cho tất cả mọi người trong URL
 Dữ liệu không được hiển thị trong URL

Phương thức yêu cầu HTTP khác

Bảng dưới đây liệt kê một số phương pháp yêu cầu HTTP khác:

Phương thức Mô tả
 HEAD  Giống như GET nhưng chỉ trả lại các tiêu đề HTTP và không có phần thân tài liệu
 PUT  Tải lên một đại diện của URI được chỉ định
 DELETE  Xoá các tài nguyên quy định
 OPTIONS  Trả về các phương thức HTTP mà máy chủ hỗ trợ
 CONNECT  Chuyển đổi yêu cầu kết nối đến một đường hầm TCP / IP minh bạch
Tham khảo thêm các khóa học lập trình web từ Front-end đến Back-end do trực tiếp giảng viên quốc tế trường FPT Arena giảng dạy giúp bạn thành thạo kỹ năng lập trình web từ CƠ BẢN – NÂNG CAO với giá chỉ từ 290,000đ:
  • Học lập trình front-end cơ bản với bootstrap 4/html5/css3
  • Học lập trình front-end nâng cao qua Project thực tế
  • Học thiết kế web với Photoshop, CSS theo kiểu SASS
  • Học cách sử dụng Git_hub cho lập trình viên
  • Học lập trình Back-end PHP theo mô hình MVC cơ bản
  • Học lập trình Back-end PHP theo mô hình MVC nâng cao
  • Học lập trình Cơ sở dữ liệu với AngularJS
  • Học lập trình theme wordpress. Làm ra mọi website hoàn chỉnh với wordpress
  • Combo lập trình front-end từ cơ bản – nâng cao
  • Combo lập trình back-end từ cơ bản đến nâng cao
  • Combo lập trình web với word press từ A-Z
0