HTTP status code: hiểu nhóm 2xx, 3xx, 4xx, 5xx
21/07/2026
Mỗi phản hồi HTTP mang một mã trạng thái ba chữ số cho biết kết quả của yêu cầu. Dùng đúng mã giúp client xử lý chính xác và API của bạn tự mô tả rõ ràng.
Năm nhóm chính
- 1xx Thông tin — hiếm dùng trực tiếp
- 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 (cache)
- 4xx Lỗi phía client: yêu cầu sai
- 5xx Lỗi phía server: server hỏng khi xử lý yêu cầu hợp lệ
Những nhầm lẫn kinh điển
- 401 vs 403: 401 Unauthorized = chưa xác thực (thiếu/ sai token); 403 Forbidden = đã biết bạn là ai nhưng không có quyền
- 400 vs 422: 400 Bad Request = cú pháp yêu cầu hỏng; 422 Unprocessable Entity = cú pháp đúng nhưng dữ liệu không hợp lệ về nghiệp vụ
- 200 vs 201 vs 204: tạo mới trả 201 kèm Location; thao tác thành công không trả body dùng 204
Nguyên tắc dùng mã
- Đừng trả 200 cho mọi thứ rồi nhét lỗi trong body — client và cache sẽ hiểu sai
- 5xx chỉ dành cho lỗi thật của server, không dùng cho input sai của người dùng
- Kèm thông điệp lỗi rõ ràng trong body cho nhóm 4xx
👉 Dùng thử công cụ liên quan trên dev-hub: JSON Formatter — chạy hoàn toàn trong trình duyệt, không gửi dữ liệu lên server.