Phương thức yêu cầu HTTP
HTTP là gì?
Giao thức truyền siêu văn bản (HTTP) được thiết kế để cho phép liên lạc giữa máy khách và máy chủ.
HTTP hoạt động như một giao thức đáp ứng yêu cầu giữa máy khách và máy chủ.
Ví dụ: Một máy khách (trình duyệt) gửi yêu cầu HTTP đến máy chủ; sau đó máy chủ trả về phản hồi cho máy khách. Phản hồi chứa thông tin trạng thái về yêu cầu và cũng có thể chứa nội dung được yêu cầu.
Phương thức HTTP
- LẤY
- BƯU KIỆN
- ĐẶT
- CÁI ĐẦU
- XÓA BỎ
- VÁ
- TÙY CHỌN
- KẾT NỐI
- DẤU VẾT
Hai phương thức HTTP phổ biến nhất là: GET và POST.
Phương thức NHẬN
GET được sử dụng để yêu cầu dữ liệu từ một tài nguyên được chỉ định.
Lưu ý rằng chuỗi truy vấn (cặp tên/giá trị) được gửi trong URL của yêu cầu GET:
/test/demo_form.php?name1=value1&name2=value2
Một số lưu ý 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 NHẬN có thể được đánh dấu
- Yêu cầu GET không bao giờ được sử dụng khi xử lý dữ liệu nhạy cảm
- Yêu cầu GET có giới hạn về độ dài
- Yêu cầu GET chỉ dùng để yêu cầu dữ liệu (không sửa đổi)
Phương thức POST
POST được sử dụng để gửi dữ liệu đến máy chủ nhằm tạo/cập nhật tài nguyên.
Dữ liệu được gửi đến máy chủ bằng POST được lưu trữ trong phần thân yêu cầu của yêu cầu HTTP:
POST /test/demo_form.php HTTP/1.1
Host: example.com.vn
name1=value1&name2=value2
Một số lưu ý về yêu cầu POST:
- Yêu cầu POST không bao giờ được lưu vào bộ nhớ đệm
- Yêu cầu POST không còn trong lịch sử trình duyệt
- Yêu cầu POST không thể được đánh dấu
- Yêu cầu POST không có hạn chế về độ dài dữ liệu
So sánh GET và POST
Bảng sau so sánh hai phương thức HTTP: GET và POST.
GET | POST | |
---|---|---|
BACK button/Reload | Harmless | Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) |
Bookmarked | Can be bookmarked | Cannot be bookmarked |
Cached | Can be cached | Not cached |
Encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data |
History | Parameters remain in browser history | Parameters are not saved in browser history |
Restrictions on data length | Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) | No restrictions |
Restrictions on data type | Only ASCII characters allowed | No restrictions. Binary data is also allowed |
Security | GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! |
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs |
Visibility | Data is visible to everyone in the URL | Data is not displayed in the URL |
Phương pháp PUT
PUT được sử dụng để gửi dữ liệu đến máy chủ để tạo/cập nhật tài nguyên.
Sự khác biệt giữa POST và PUT là các yêu cầu PUT là bình thường. Nghĩa là, gọi cùng một yêu cầu PUT nhiều lần sẽ luôn cho cùng một kết quả. Ngược lại, việc gọi một yêu cầu POST liên tục có tác dụng phụ là tạo cùng một tài nguyên nhiều lần.
Phương pháp ĐẦU
HEAD gần giống với GET nhưng không có phần thân phản hồi.
Nói cách khác, nếu GET /users trả về danh sách người dùng thì HEAD /users sẽ đưa ra yêu cầu tương tự nhưng sẽ không trả về danh sách người dùng.
Yêu cầu HEAD rất hữu ích trong việc kiểm tra xem yêu cầu GET sẽ trả về những gì trước khi thực sự thực hiện yêu cầu GET - yêu cầu HEAD có thể đọc tiêu đề Độ dài nội dung để kiểm tra kích thước của tệp mà không thực sự tải xuống tệp.
Phương pháp XÓA
Phương thức DELETE xóa tài nguyên đã chỉ định.
Phương pháp PATCH
Phương thức PATCH được sử dụng để áp dụng sửa đổi một phần cho tài nguyên.
Phương pháp TÙY CHỌN
Phương thức OPTIONS mô tả các tùy chọn liên lạc cho tài nguyên đích.
Phương pháp KẾT NỐI
Phương thức CONNECT được sử dụng để bắt đầu liên lạc hai chiều (đường hầm) với tài nguyên được yêu cầu.
Phương pháp TRACE
Phương thức TRACE được sử dụng để thực hiện kiểm tra vòng lặp thông báo để kiểm tra đường dẫn cho tài nguyên đích (hữu ích cho mục đích gỡ lỗi).