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 giao tiếp giữa máy khách và máy chủ.
HTTP hoạt động như một giao thức phản hồi 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 một yêu cầu HTTP đến máy chủ; sau đó máy chủ trả về một 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
- ĐẾN
- BÀI ĐĂNG
- ĐẶT
- CÁI ĐẦU
- XÓA BỎ
- VÁ
- TÙY CHỌN
Hai phương thức HTTP phổ biến nhất là: GET và POST.
Phương pháp GET
GET được sử dụng để yêu cầu dữ liệu từ một tài nguyên cụ thể.
GET là một trong những phương thức HTTP phổ biến nhất.
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 vào bộ nhớ đệm
- 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 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ỉ được sử dụng để yêu cầu dữ liệu (không sửa đổi)
Phương pháp ĐĂNG
POST được sử dụng để gửi dữ liệu đến máy chủ để tạo / cập nhật tài nguyên.
Dữ liệu được gửi đến máy chủ với 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: w3schools.com
name1=value1&name2=value2
POST là một trong những phương thức HTTP phổ biến nhất.
Một số lưu ý khác về yêu cầu ĐĂNG:
- Yêu cầu POST không bao giờ được lưu vào bộ nhớ đệm
- Yêu cầu ĐĂNG 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ó giới hạn về độ dài dữ liệu
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à không quan trọng. Nghĩa là, việc gọi cùng một yêu cầu PUT nhiều lần sẽ luôn tạo ra cùng một kết quả. Ngược lại, việc gọi nhiều lần một yêu cầu POST có tác dụng phụ là tạo nhiều lần cùng một tài nguyên.
Phương pháp HEAD
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 / người dùng trả về danh sách người dùng, thì HEAD / người dùng sẽ đưa ra yêu cầu tương tự nhưng sẽ không trả lại danh sách người dùng.
Yêu cầu HEAD rất hữu ích để kiểm tra yêu cầu GET sẽ trả về gì trước khi thực sự thực hiện yêu cầu GET - như trước khi tải xuống tệp lớn hoặc nội dung phản hồi.
Phương pháp DELETE
Phương thức DELETE xóa tài nguyên được chỉ định.
Phương pháp OPTIONS
Phương pháp OPTIONS mô tả các tùy chọn giao tiếp cho tài nguyên đích.
So sánh GET với 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 |