Các phương thức của HTTP: GET và POST

Có hai phương thức HTTP hay được dùng nhất: GET và POST. 

HTTP là gì?

Giao Thức Truyền Tải Siêu Văn Bản (HTTP) được thiết kế cho phép thực hiện các giao tiếp giữa máy khách và máy chủ.

HTTP làm việc dựa trên giao thức yêu cầu – phản hồi giữa máy khách và server.

Một trình duyệt web có thể là máy khách và một ứng dụng trên máy tính được lưu trữ như một website có thể là server.

Ví dụ: Một máy khách (trình duyệt) gửi yêu cầu HTTP tới server; sau đó server hồi đáp lại yêu cầu của máy khách. Việc hồi đáp này bao gồm thông tin trạng thái về yêu cầu và có thể còn bao gồm cả nội dung đã yêu cầu.

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

Có hai phương thức thường được sử dụng để yêu cầu và hồi đáp giữa máy khách và server là: GET và POST.

  • GET – Các yêu cầu dữ liệu từ một nguồn chỉ định
  • POST – Gửi dữ liệu để xử lý tới một nguồn nhất định

Phương thức GET

Lưu ý chuỗi truy vấn (cặp tên / giá trị) được gửi đi trong URL của phương thức truy vấn GET:

/ducanhfile/demo.php?name1=value1&name2=value2

Một số lưu khác về truy vấn GET:

  • Truy vấn GET có thể được lưu lại (cached)
  • Truy vấn GET vẫn được lưu lại trong lịch sử trình duyệt
  • Truy vấn GET có thể được bookmark (đánh dấu rồi xem lại sau)
  • Truy vấn GET không bao giờ được sử dụng để gửi đi các dữ liệu nhạy cảm
  • Truy vấn GET có những hạn chế về chiều dài dữ liệu
  • Truy vấn GET chỉ nên sử dụng cho việc lấy dữ liệu GET

Phương thức POST

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

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

Một số lưu ý khác về truy vấn POST: 

  • Truy vấn POST không bao giờ được lưu trữ (cached)
  • Truy vấn POST không được lưu lại trong lịch sử tình duyệt
  • Truy vấn POST không thể bookmark
  • Truy vấn POST không hạn chế chiều dài dữ liệu

So sánh GET và POST

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

  GET POST
Khi tải lại trang hoặc nhấn nút BACK trên trình duyệt Vô hại Dữ liệu sẽ được gửi thêm lần nữa (trình duyệt phải cảnh báo người dùng rằng dữ liệu sẽ được gửi lên lần nữa)
Bookmark Có thể bookmark Không thể bookmark
Bộ nhớ Cached Có thể được lưu trong bộ nhớ cached Không lưu trong bộ nhớ cached
Kiểu Encoding application/x-www-form-urlencoded application/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
Lịch sử Các thông số vẫn được lưu trữ trong lịch sử trình duyệt Các thông số không được lưu trữ trong lịch sử trình duyệt
Các hạn chế về chiều dài dữ liệu Vâng, khi gửi dữ liệu, phương thức GET thêm dữ liệu vào URL; và độ dài tối đa của URL là có giới hạn (con số cụ thể là 2048 ký tự) Không có hạn chế
Hạn chế trong kiểu dữ liệu Chỉ bảng mã ASCII được chấp nhận (vì nó liên quan đến URL) Không có hạn chế. Dữ liệu nhị phân cũng được phép
Bảo mật GET kém an toàn hơn khi so với POST, bởi vì dữ liệu gửi đi có một phần trong URL

 

Không bao giờ được dùng GET khi gửi dữ liệu mật khẩu (password) hoặc các thông tin nhạy cảm (ví dụ số thẻ ngân hàng)

POST an toàn hơn một chút so với GET bởi vì thông số không được lưu trữ trong lịch sử duyệt web hoặc trong web server logs

 

 

Lộ 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

Các phương thức truy vấn HTTP khác

Bảng dưới đây liệt kê một số phương thức truy vấn HTTP khác:

Phương thứcMô tả
HEADTương tự như GET nhưng chỉ trả về HTTP header và không có thân tài liệu
PUTTải lên một đại diện xác định của URI
DELETEXoá tài nguyên xác định
OPTIONSQuay trở lại phương thức HTTP mà server hỗ trợ
CONNECTChuyển đổi các yêu cầu kết nối đến một tunnel TCP/IP

1 thought on “Các phương thức của HTTP: GET và POST”

Leave a Comment