HTTP method báo mục đích của request:
- GET — lấy dữ liệu, không có body, an toàn (không đổi trạng thái) và idempotent; có thể cache.
- POST — tạo mới / gửi dữ liệu; không idempotent (gọi 2 lần tạo 2 bản ghi).
- PUT — thay thế toàn bộ một resource; idempotent (gọi lại kết quả như nhau).
- PATCH — cập nhật một phần resource.
- DELETE — xóa resource; idempotent.
Idempotent = gọi nhiều lần cho cùng kết quả trạng thái như gọi một lần (quan trọng khi retry).
Nhóm status code:
- 2xx thành công — 200 OK, 201 Created, 204 No Content.
- 3xx chuyển hướng — 301 (vĩnh viễn), 302/307 (tạm thời), 304 Not Modified (dùng cache).
- 4xx lỗi phía client — 400 (request sai), 401 (chưa xác thực), 403 (không đủ quyền), 404 (không tìm thấy), 429 (quá nhiều request).
- 5xx lỗi phía server — 500, 502, 503.
Mẹo phân biệt hay bị hỏi: 401 = "bạn là ai?" (chưa đăng nhập), 403 = "biết bạn là ai rồi nhưng không cho".