HTTP method nêu ý định của bạn trên một resource; status code là câu trả lời đã mã hoá của server. Hai thuộc tính quan trọng của method: safe (chỉ đọc, không có side effect) và idempotent (lặp lại cho cùng kết quả — quan trọng để retry an toàn).
HTTP method nêu ý định của bạn trên một resource; status code là câu trả lời đã mã hoá của server. Hai thuộc tính quan trọng của method: safe (chỉ đọc, không có side effect) và idempotent (lặp lại cho cùng kết quả — quan trọng để retry an toàn).
| Method | Mục đích | Safe | Idempotent |
|---|
| GET | Đọc một resource | Yes | Yes |
| POST | Tạo mới / kích hoạt hành động | No | No |
| PUT | Thay thế một resource | No | Yes |
| PATCH | Cập nhật một phần | No | No* |
| DELETE | Xoá một resource | No | Yes |
| HEAD | Như GET nhưng chỉ header | Yes | Yes |
Phân biệt idempotency rất thực dụng: vì PUT và DELETE là idempotent, client có thể an toàn retry chúng sau một timeout; retry một POST không-idempotent có nguy cơ tạo bản trùng (một lỗi trừ tiền hai lần kinh điển).
Status code được nhóm theo chữ số đầu:
1xx Informational request received, continuing (100 Continue, 101 Switching)
2xx Success it worked (200 OK, 201 Created, 204 No Content)
3xx Redirection go elsewhere (301 Moved, 304 Not Modified)
4xx Client error YOUR request is wrong (400, 401, 403, 404, 429)
5xx Server error the SERVER failed (500, 502, 503, 504)
Dòng quan trọng nhất là ranh giới 4xx vs 5xx: 4xx nghĩa là client gửi sai (input xấu, chưa xác thực, không tìm thấy) — retry y nguyên sẽ không giúp gì; 5xx nghĩa là server hỏng — retry (kèm backoff) có thể thành công. Hãy thuộc lòng những cái hằng ngày: 401 (chưa xác thực) vs 403 (đã xác thực nhưng không được phép), 404 (không tìm thấy), 429 (bị giới hạn tần suất), 500 (crash server chung chung), 502/503/504 (bad gateway / không khả dụng / gateway timeout — thường là vấn đề upstream hoặc quá tải).
Những mã này là hợp đồng chung giữa mọi client và server, nên sự thành thạo ở đây là điều được kỳ vọng ở bất kỳ ai xây hay dùng API. Người phỏng vấn dò các phân biệt để lộ hiểu biết thật: 401 vs 403, PUT vs PATCH, và đặc biệt là idempotency — thứ trực tiếp quyết định retry có an toàn không, một mối quan tâm cốt lõi trong hệ phân tán và luồng thanh toán. Trả về đúng status code cũng khiến API của bạn dễ đoán và được cache, proxy, thư viện client xử lý đúng, nên kiến thức này định hình thiết kế API tốt, chứ không chỉ là chuyện vặt.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ