Các phương thức yêu cầu HTTP được giải thích
HTTP định nghĩa chín phương thức yêu cầu chuẩn, nhưng phần lớn lưu lượng hằng ngày chỉ dùng vài phương thức. Bảng này giải thích từng phương thức, tính an toàn và đơn nhất, cùng mã trạng thái mà lời gọi thành công trả về.
| Phương thức | Mục đích | An toàn? | Đơn nhất? | Mã thành công |
|---|---|---|---|---|
| GET | Retrieve a resource | Yes | Yes | 200 OK |
| HEAD | Retrieve headers only, no body | Yes | Yes | 200 OK |
| POST | Create a resource or trigger an action | No | No | 201 Created |
| PUT | Replace a resource entirely | No | Yes | 200 OK / 204 No Content |
| PATCH | Apply a partial update | No | No | 200 OK |
| DELETE | Remove a resource | No | Yes | 200 OK / 204 No Content |
| OPTIONS | CORS preflight; list allowed methods | Yes | Yes | 204 / 200 OK |
| TRACE | Echo the request back for diagnostics | Yes | Yes | 200 OK |
| CONNECT | Open a tunnel, e.g. HTTPS via a proxy | No | No | 200 OK |
Ghi chú
- An toàn nghĩa là phương thức không bao giờ thay đổi trạng thái máy chủ: chỉ GET, HEAD, OPTIONS và TRACE là an toàn.
- Đơn nhất nghĩa là gọi lặp lại cho kết quả giống như gọi một lần: PUT, DELETE và GET thỏa mãn; POST và PATCH thì không.
- Khi một route không chấp nhận phương thức nào đó, máy chủ trả về 405 Method Not Allowed và thường kèm header Allow.
Câu hỏi thường gặp
- GET và POST khác nhau thế nào?
- GET truy xuất tài nguyên không gây tác dụng phụ và có thể lặp lại an toàn; tham số nằm trên URL. POST tạo mới hoặc kích hoạt một hành động, có thể thay đổi trạng thái và không nên lặp lại tùy tiện.
- Phương thức HTTP 'an toàn' nghĩa là gì?
- Phương thức an toàn không bao giờ thay đổi trạng thái máy chủ nên có thể gọi mà không rủi ro. GET, HEAD, OPTIONS và TRACE an toàn; POST, PUT, PATCH và DELETE thì không.
- PUT và PATCH khác nhau thế nào?
- PUT thay thế toàn bộ tài nguyên bằng dữ liệu bạn gửi; PATCH chỉ áp dụng thay đổi một phần trên các trường được chọn. PUT đơn nhất nên lặp lại vẫn cho kết quả như nhau; PATCH thường không đơn nhất.
- Phương thức HEAD dùng để làm gì?
- HEAD hoạt động như GET nhưng không trả về phần thân. Nó giúp kiểm tra tài nguyên có tồn tại, kích thước hay header mà không cần tải toàn bộ nội dung.