🌐 Web

Danh sách mã trạng thái HTTP

Ý nghĩa và khác biệt của mã phản hồi HTTP từ nhóm 100 đến nhóm 500
Đọc dữ liệu

Đọc mã trạng thái HTTP theo nhóm 100

Mã trạng thái HTTP là mã phản hồi tiêu chuẩn cho biết máy chủ đã xử lý yêu cầu như thế nào. Khi hiểu trước ý nghĩa của các nhóm 1xx, 2xx, 3xx, 4xx và 5xx, bạn sẽ dễ phân biệt hơn từng lỗi như 404, 429, 451 và 500.

Cách đọc

Tìm theo số mã, tên tiếng Anh, mô tả tiếng Việt hoặc từ khóa liên quan, rồi thu hẹp phạm vi bằng nhóm 100 hoặc bộ lọc mã chính/mã đặc biệt. Nhấn vào số mã để chuyển thẳng đến dòng tương ứng.

Bạn có thể xem gì trên trang này
  • Mã đã đăng ký và reason phrase tiêu chuẩn theo IANA HTTP Status Code Registry
  • Ý nghĩa, tình huống phát sinh, điểm cần kiểm tra và mã liên quan theo từng lớp 100
  • Giải thích chi tiết các mã được tìm kiếm nhiều như 451, 429, 404, 500 và 503
Cơ sở dữ liệu

Dữ liệu được biên soạn dựa trên IANA HTTP Status Code Registry và các tài liệu IETF như RFC 9110, RFC 7725, RFC 6585.

Trang này là tài liệu tham khảo giải thích ý nghĩa của giao thức HTTP; các quyết định pháp lý, bảo mật hoặc vận hành cần được kiểm tra cùng môi trường dịch vụ và tài liệu chính thức.

Mã đã đăng ký 64
Lớp trạng thái 5
Mã chính 25
Mã đặc biệt 21
1xx Thông tin 5 2xx Thành công 10 3xx Chuyển hướng 9 4xx Lỗi client 29 5xx Lỗi server 11
🌐 Danh sách đầy đủ mã trạng thái HTTP
Tổng cộng 64 mã

1xx Informational

Phản hồi trung gian cho biết request đã được nhận và quá trình xử lý vẫn đang tiếp tục.

5
Ý nghĩa Tình huống chính Điểm cần kiểm tra
100 Continue RFC 9110 Server đã nhận header của request và client có thể tiếp tục gửi phần body. Dùng khi server xác nhận liệu một request body lớn có thể tiếp tục trước khi client gửi body hay không. Kiểm tra header Expect: 100-continue và luồng xử lý upload của server. Liên quan: 417
101 Switching Protocols RFC 9110 Server đã chấp nhận việc chuyển đổi giao thức do client yêu cầu. Thường gặp khi một kết nối HTTP được nâng cấp sang giao thức khác như WebSocket. Kiểm tra header Upgrade, header Connection và việc proxy có chuyển tiếp yêu cầu nâng cấp đúng cách hay không. Liên quan: 426
102 Processing RFC 2518 Request đã được nhận và vẫn đang được xử lý, nhưng phản hồi cuối cùng chưa sẵn sàng. Có thể dùng cho các request WebDAV chạy lâu để giảm rủi ro timeout phía client. Kiểm tra phản hồi cuối cùng có đến riêng hay không và client có bỏ qua phản hồi trung gian an toàn hay không. Liên quan: 207, 208
104 Tạm thời Upload Resumption Supported IANA temporary registration Mã trạng thái đăng ký tạm thời cho biết có hỗ trợ tiếp tục upload. Có thể xuất hiện trong các luồng thử nghiệm thương lượng tiếp tục theo range sau khi upload lớn bị gián đoạn. Vì đây là đăng ký tạm thời của IANA, hãy xác nhận hỗ trợ từ client và server trước khi dùng trong production. Liên quan: 100, 201

2xx Success

Phản hồi cho biết request đã được hiểu và xử lý thành công.

10
Ý nghĩa Tình huống chính Điểm cần kiểm tra
201 Created RFC 9110 Request thành công và một tài nguyên mới đã được tạo. Phù hợp cho các request POST tạo bài viết, đơn hàng, tài khoản, file hoặc tài nguyên tương tự. Kiểm tra vị trí tài nguyên mới có được cung cấp qua header Location hoặc response body hay không. Liên quan: 200, 202, 204
202 Accepted RFC 9110 Request đã được chấp nhận, nhưng quá trình xử lý chưa hoàn tất. Dùng cho job bất đồng bộ, công việc trong queue và thao tác batch có kết quả được quyết định sau. Khi có thể, hãy đưa URL trạng thái, job ID hoặc hướng dẫn retry vào response. Liên quan: 200, 201, 204
203 Non-Authoritative Information RFC 9110 Một proxy hoặc lớp chuyển đổi đã sửa đổi rồi chuyển tiếp phản hồi 200 từ origin server. Có thể dùng khi một intermediary cung cấp representation hoặc metadata đã được biến đổi. Kiểm tra phản hồi gốc, chính sách chuyển đổi, header Warning và header cache cùng nhau. Liên quan: 200, 214
204 No Content RFC 9110 Request thành công, nhưng response không có body. Dùng khi thao tác xóa, lưu, bật tắt hoặc tương tự đã thành công mà không cần response body hay điều hướng. Không gửi body với phản hồi 204 và xác nhận client không coi response rỗng là lỗi. Liên quan: 200, 205
205 Reset Content RFC 9110 Request thành công và client có thể đặt lại giao diện nhập liệu. Có thể dùng sau khi gửi form để báo client xóa các trường ngay trên màn hình hiện tại. Mã này hiếm khi dùng trong thực tế, nên hãy xác nhận reset giao diện thật sự là trải nghiệm mong muốn. Liên quan: 204
207 Multi-Status RFC 4918 Phản hồi WebDAV mang trạng thái của nhiều thao tác con trong một request. Dùng khi nhiều tài nguyên được xử lý cùng lúc và mỗi tài nguyên cần kết quả thành công hoặc thất bại riêng. Phân tích trạng thái theo từng tài nguyên từ response body; REST API thông thường thường dùng định dạng kết quả riêng. Liên quan: 102, 208
208 Already Reported RFC 5842 Cho biết một tài nguyên binding của WebDAV đã được báo cáo và không được lặp lại. Dùng để giảm danh sách trùng lặp khi cùng một tài nguyên được tham chiếu qua nhiều path trong phản hồi WebDAV. Xác nhận client WebDAV có thể xử lý 208 cùng với body của phản hồi 207. Liên quan: 207
226 IM Used RFC 3229 Server trả về kết quả sau khi áp dụng instance manipulation (IM). Được định nghĩa cho delta encoding và các phản hồi dựa trên thay đổi khác. Cần luồng cache và truyền tải đặc biệt dùng header A-IM và IM, nên mã này hiếm gặp trên website thông thường. Liên quan: 200, 206

3xx Redirection

Phản hồi cho biết cần một vị trí khác hoặc hành động bổ sung để hoàn tất request.

9
Ý nghĩa Tình huống chính Điểm cần kiểm tra
300 Multiple Choices RFC 9110 Tài nguyên được yêu cầu có nhiều representation hoặc lựa chọn. Có thể dùng khi người dùng hoặc client phải chọn giữa các phương án ngôn ngữ, định dạng hoặc phiên bản cho cùng một tài nguyên. Trong thực tế, redirect với header Location rõ ràng như 301, 302, 303, 307 và 308 phổ biến hơn. Liên quan: 301, 302
303 See Other RFC 9110 Kết quả của request nên được lấy bằng GET từ một URL khác. Hữu ích trong mẫu POST/Redirect/GET sau khi xử lý form, khi người dùng được đưa đến trang kết quả hoặc hoàn tất. Hiểu rằng method sẽ đổi thành GET và kiểm tra luồng ngăn gửi form trùng lặp. Liên quan: 302, 307
305 Use Proxy RFC 9110 Mã trạng thái cũ yêu cầu client dùng proxy; hiện đã bị deprecated vì lý do bảo mật. An toàn nhất là xem mã này như không còn dùng trên web hiện đại. Không dùng trong triển khai mới; hãy xử lý chính sách proxy bằng cấu hình hoặc tầng mạng. Liên quan: 407
306 Unused RFC 9110 Mã trạng thái từng được định nghĩa trước đây nhưng hiện được reserved và không dùng. Không dùng làm phản hồi server thông thường. Nếu xuất hiện trong log, hãy kiểm tra intermediary, code test hoặc triển khai không chuẩn. Liên quan: 305
307 Temporary Redirect RFC 9110 Redirect tạm thời bắt buộc giữ nguyên request method và body. Rõ ràng hơn 302 khi POST, PUT hoặc method khác phải được giữ nguyên trong lúc gửi request tới vị trí tạm thời. Xác nhận client không đổi method sang GET và đích Location có thể xử lý cùng request đó. Liên quan: 302, 308

4xx Client Error

Phản hồi cho biết request không thể được xử lý do điều kiện phía client như cú pháp, xác thực, phân quyền hoặc trạng thái tài nguyên.

29
Ý nghĩa Tình huống chính Điểm cần kiểm tra
402 Payment Required RFC 9110 Được reserved cho tình huống cần thanh toán, nhưng ý nghĩa chuẩn chưa được thiết lập rộng rãi. Một số API và dịch vụ thanh toán dùng không chính thức cho vấn đề thanh toán, credit hoặc subscription. Kiểm tra tài liệu API riêng của dịch vụ để biết ý nghĩa thật sự của 402 và cách khôi phục. Liên quan: 403, 429
405 Method Not Allowed RFC 9110 Tài nguyên tồn tại, nhưng HTTP method được yêu cầu không được phép. Xảy ra khi gửi POST tới URL chỉ cho GET hoặc route API được cấu hình cho các method khác. Kiểm tra header Allow, định nghĩa method trong router và chính sách giới hạn method của proxy. Liên quan: 404, 501
406 Not Acceptable RFC 9110 Server không thể cung cấp representation khớp với các header Accept của client. Có thể xảy ra khi client chỉ yêu cầu media type, ngôn ngữ hoặc encoding không được hỗ trợ. Kiểm tra các header Accept, Accept-Language, Accept-Encoding và cấu hình content negotiation của server. Liên quan: 415
407 Proxy Authentication Required RFC 9110 Cần xác thực trước khi client có thể dùng proxy. Thường gặp trong mạng doanh nghiệp, proxy bảo mật và môi trường xác thực gateway. Kiểm tra header Proxy-Authenticate, Proxy-Authorization và cấu hình proxy mạng. Liên quan: 401, 305
408 Request Timeout RFC 9110 Server không nhận được request đầy đủ từ client trong khoảng thời gian sẵn sàng chờ. Có thể xảy ra với mạng chậm, upload lớn, timeout keep-alive hoặc timeout load balancer. Kiểm tra hành vi retry của client, kích thước upload, cài đặt keep-alive và giá trị timeout của proxy. Liên quan: 504
409 Conflict RFC 9110 Request xung đột với trạng thái hiện tại của tài nguyên. Thường dùng cho tạo trùng, xung đột phiên bản, chỉnh sửa đồng thời hoặc chuyển trạng thái không hợp lệ. Kiểm tra phiên bản tài nguyên, ETag, khóa trùng và rule chuyển trạng thái nghiệp vụ. Liên quan: 412, 422
411 Length Required RFC 9110 Server từ chối request vì không có Content-Length. Có thể xảy ra khi server hoặc gateway cần biết trước độ dài request body. Kiểm tra Content-Length, Transfer-Encoding và hành vi streaming của thư viện client. Liên quan: 413
412 Precondition Failed RFC 9110 Một điều kiện tiên quyết trong request có điều kiện, chẳng hạn If-Match, đã thất bại. Dùng để ngăn chỉnh sửa đồng thời, revalidate cache và cập nhật dựa trên ETag. So sánh If-Match, If-None-Match và If-Unmodified-Since với phiên bản tài nguyên hiện tại. Liên quan: 304, 409, 428
414 URI Too Long RFC 9110 URI của request dài hơn mức server có thể xử lý. Có thể xảy ra với query string quá dài, vòng lặp redirect lỗi hoặc đưa quá nhiều dữ liệu vào URL GET. Chuyển dữ liệu dài vào body POST và kiểm tra giới hạn độ dài URI ở proxy và server. Liên quan: 400, 431
415 Unsupported Media Type RFC 9110 Server không hỗ trợ media type của request body. Xảy ra khi JSON API nhận Content-Type sai hoặc file format không được hỗ trợ được upload. Kiểm tra Content-Type, phần mở rộng file, cài đặt multipart và parser server đã được đăng ký hay chưa. Liên quan: 406, 422
416 Range Not Satisfiable RFC 9110 Range được yêu cầu không thể phục vụ vì không phù hợp với kích thước tài nguyên. Xảy ra trong download có thể tiếp tục hoặc streaming khi range được yêu cầu nằm ngoài kích thước file. Kiểm tra header Range, Content-Range, kích thước file và metadata cache đã cũ. Liên quan: 206
417 Expectation Failed RFC 9110 Server không thể đáp ứng kỳ vọng được nêu trong header Expect. Có thể xảy ra khi server hoặc proxy không hỗ trợ các kỳ vọng như Expect: 100-continue. Gỡ header Expect hoặc xác nhận server hỗ trợ xử lý 100 Continue. Liên quan: 100
423 Locked RFC 4918 Tài nguyên đích đang bị khóa nên request không thể được xử lý. Dùng cho khóa chỉnh sửa file, tài liệu cộng tác và khóa tài nguyên WebDAV. Kiểm tra chủ sở hữu khóa, thời hạn khóa, API mở khóa và chính sách xử lý xung đột. Liên quan: 409, 424
424 Failed Dependency RFC 4918 Request hiện tại không thể thực hiện vì một thao tác phụ thuộc trước đó đã thất bại. Dùng khi nhiều thao tác phụ thuộc lẫn nhau và thất bại của thao tác trước làm thao tác sau thất bại. Làm rõ thao tác trước đã thất bại và quan hệ phụ thuộc trong response body. Liên quan: 207, 423
426 Upgrade Required RFC 9110 Server yêu cầu client nâng cấp giao thức trước khi xử lý request. Dùng khi cần một nâng cấp cụ thể như phiên bản HTTP, TLS hoặc WebSocket. Kiểm tra header Upgrade, các giao thức được hỗ trợ và việc proxy có chuyển tiếp request nâng cấp hay không. Liên quan: 101
428 Precondition Required RFC 6585 Server yêu cầu header request có điều kiện. Dùng để ngăn mất cập nhật do chỉnh sửa đồng thời bằng cách yêu cầu điều kiện như If-Match. Cung cấp tài liệu API và thông báo lỗi yêu cầu client đọc ETag rồi cập nhật với If-Match. Liên quan: 412, 409

5xx Server Error

Phản hồi cho biết server hoặc gateway không xử lý được một request vốn hợp lệ.

11
Ý nghĩa Tình huống chính Điểm cần kiểm tra
501 Not Implemented RFC 9110 Server không hỗ trợ chức năng cần thiết để xử lý request. Dùng khi request yêu cầu HTTP method không được hỗ trợ hoặc một tính năng server chưa được triển khai. 405 nghĩa là method bị cấm với tài nguyên đó; 501 gần với việc server hoàn toàn không biết capability này. Liên quan: 405
505 HTTP Version Not Supported RFC 9110 Server không hỗ trợ phiên bản HTTP được dùng trong request. Có thể xảy ra với client cũ, proxy lỗi hoặc giới hạn phiên bản HTTP phía server. Kiểm tra phiên bản HTTP của client, thương lượng TLS/ALPN và cài đặt chuyển đổi giao thức của proxy. Liên quan: 426
506 Variant Also Negotiates RFC 2295 Lỗi cấu hình transparent content negotiation đã gây ra vòng lặp negotiation nội bộ. Dùng khi content negotiation của server bị cấu hình sai và variant được chọn cũng được cấu hình để negotiation. Kiểm tra cài đặt content negotiation, mapping variant và file cấu hình server. Liên quan: 300, 406
507 Insufficient Storage RFC 4918 Server không thể cấp phát dung lượng lưu trữ cần thiết để hoàn tất request. Có thể xảy ra với WebDAV, upload file, hết quota lưu trữ hoặc thiếu dung lượng đĩa. Kiểm tra mức dùng đĩa, lưu trữ file tạm, quota người dùng và lỗi object storage. Liên quan: 413, 500
508 Loop Detected RFC 5842 Server phát hiện vòng lặp vô hạn trong khi xử lý request. Có thể dùng khi request WebDAV Depth hoặc cấu trúc tham chiếu nội bộ chứa chu kỳ. Kiểm tra đồ thị tham chiếu tài nguyên, symbolic link, binding WebDAV và giới hạn đệ quy. Liên quan: 508
510 Not Extended RFC 2774 Cần các extension bổ sung để request được xử lý. Được định nghĩa bởi HTTP extension framework, nhưng hiếm khi dùng trong dịch vụ web thông thường. Kiểm tra tài liệu của API hoặc yêu cầu extension server liên quan. Liên quan: 501

Xem chi tiết các mã HTTP thường được tìm kiếm

Sau khi tìm nhanh trong bảng, bạn có thể xem phần giải thích bên dưới để hiểu khác biệt với các mã tương tự.

HTTP 451 Unavailable For Legal Reasons

451 là mã trạng thái 4xx cho biết rõ rằng truy cập không khả dụng vì lý do pháp lý.

HTTP 451 được dùng khi server, công cụ tìm kiếm, proxy hoặc intermediary không thể cung cấp tài nguyên do một yêu cầu pháp lý. Đây không chỉ là thiếu quyền truy cập; mã này cho biết phía sau hạn chế đó có yêu cầu pháp lý bên ngoài như lệnh tòa, yêu cầu chính phủ, hành động bản quyền hoặc quy định địa phương.

Khi thấy 451 trong kết quả tìm kiếm hoặc trình duyệt, hiểu chính xác hơn là trang không được cung cấp vì lý do pháp lý tại vị trí request hiện tại hoặc theo chính sách dịch vụ, thay vì mặc định rằng trang đã biến mất về mặt kỹ thuật. Khi có thể, nhà cung cấp dịch vụ nên giải thích bên yêu cầu chặn hoặc yêu cầu pháp lý trong response body để người dùng hiểu tình huống.

Khác với 403 403 nghĩa là truy cập bị cấm bởi quyền hoặc chính sách server; 451 được dùng khi lý do của hạn chế đó là yêu cầu pháp lý.
Khác với 404 404 nghĩa là không tìm thấy tài nguyên hoặc sự tồn tại của nó bị che giấu; 451 nhấn mạnh hơn rằng tài nguyên tồn tại hoặc được biết đến nhưng không thể cung cấp vì lý do pháp lý.
Khác với 410 410 nghĩa là tài nguyên đã bị xóa vĩnh viễn; 451 nghĩa là truy cập bị hạn chế bất kể tài nguyên đã bị xóa hay chưa.

HTTP 429 Too Many Requests

429 nghĩa là đã vượt giới hạn request, đặc biệt phổ biến trong API và bảo vệ đăng nhập.

429 được dùng khi client gửi quá nhiều request trong thời gian ngắn. Nó gắn với chính sách ổn định dịch vụ và phòng chống lạm dụng như giới hạn sử dụng, chống bot, giới hạn thử đăng nhập và quota API của gói miễn phí.

Server nên cung cấp Retry-After hoặc header rate limit khi có thể để client biết khi nào nên thử lại. Client nên dùng exponential backoff và queueing thay vì lặp lại request ngay lập tức.

Khác với 403 403 nghĩa là bản thân truy cập bị cấm, còn 429 có thể được phép lại sau khi thời gian trôi qua hoặc mức sử dụng phục hồi.
Khác với 503 503 nghĩa là server tạm thời không thể xử lý request; 429 cụ thể hơn là một client hoặc token nhất định đã vượt quota request.

HTTP 404 Not Found

404 là mã lỗi web phổ biến nhất; nên kiểm tra URL và trạng thái nội dung trước.

404 nghĩa là server không tìm thấy tài nguyên được yêu cầu. Người dùng thường hiểu đây là URL gõ sai hoặc trang đã xóa, nhưng server cũng có thể trả 404 để tránh tiết lộ liệu một tài nguyên được bảo vệ có tồn tại hay không.

Để giữ khả năng hiển thị trên tìm kiếm, hãy kiểm tra internal link hỏng, sitemap cũ và trang thay thế bị thiếu cho nội dung đã xóa. Nếu có trang thay thế rõ ràng, 301 có thể phù hợp; nếu tài nguyên đã bị xóa vĩnh viễn, 410 cũng là một lựa chọn.

Khác với 410 404 là phản hồi không tìm thấy nói chung, còn 410 cho biết tài nguyên từng tồn tại và đã biến mất vĩnh viễn.
Khác với 403 403 nghĩa là server tìm thấy tài nguyên nhưng từ chối truy cập; 404 nghĩa là không tìm thấy hoặc server không tiết lộ liệu tài nguyên có tồn tại hay không.

HTTP 500 Internal Server Error

500 là lỗi phía server phạm vi rộng, nghĩa là đã có exception hoặc failure xảy ra khi xử lý request.

500 được dùng khi vấn đề xảy ra trong logic server, cấu hình, dịch vụ phụ thuộc hoặc xử lý dữ liệu, thay vì ở định dạng request của client. Nó thường được trả về như mã lỗi tổng quát để tránh lộ exception chi tiết cho người dùng.

Trong vận hành, hãy kiểm tra trước các lần deploy gần đây, log ứng dụng, error tracking, kết nối database và biến môi trường bị thiếu. Nếu cùng một request liên tục tạo ra 500, cũng cần kiểm tra đường đi validation đầu vào và xử lý exception.

Khác với 502 500 là lỗi nội bộ trong server hiện tại, còn 502 nghĩa là gateway nhận được phản hồi không hợp lệ từ upstream server.
Khác với 503 503 phù hợp hơn cho tình trạng tạm thời không khả dụng như bảo trì hoặc quá tải.

HTTP 503 Service Unavailable

503 nghĩa là server tạm thời không thể xử lý request.

503 được dùng khi dịch vụ tạm thời không thể nhận request do bảo trì, quá tải, deployment, lỗi backend hoặc độ trễ autoscaling. Với công cụ tìm kiếm, nó có thể báo hiệu sự cố tạm thời, nên bảo trì theo lịch thường phù hợp với 503 hơn 500.

Hãy thêm header Retry-After khi có thể để cho biết khi nào client nên thử lại. Đồng thời kiểm tra health check của load balancer, backlog queue, số lượng instance và lỗi dịch vụ phụ thuộc.

Khác với 500 500 bao quát lỗi nội bộ nói chung, còn 503 nói rõ hơn rằng server tạm thời không thể xử lý request.
Khác với 429 429 nghĩa là client gửi request quá nhiều, còn 503 gần với tình huống toàn bộ dịch vụ, hoặc một phần dịch vụ, mất năng lực xử lý.

Mã trạng thái HTTP là tín hiệu tiêu chuẩn hóa ý nghĩa giao tiếp. Nguyên nhân thực tế cần được kiểm tra cùng log ứng dụng, cấu hình proxy/CDN, chính sách xác thực, header cache và lịch sử triển khai.

Nguồn và giấy phép

Nguồn dữ liệu và điều khoản sử dụng

Trang này dựa trên dữ liệu công khai từ các nhà cung cấp gốc bên dưới. Mỗi bộ dữ liệu tuân theo giấy phép hoặc điều khoản sử dụng của nhà cung cấp gốc.

Nguồn Dữ liệu/API Điều khoản sử dụng Xử lý bởi Onul Works
IANA HTTP Status Code Registry Điều khoản sử dụng Tái cấu trúc mã đã đăng ký của IANA và mô tả RFC của IETF theo nhóm 100, thẻ tìm kiếm và phần giải thích các mã chính.
IETF / RFC Editor HTTP Semantics and status code RFCs Điều khoản sử dụng Tái cấu trúc mã đã đăng ký của IANA và mô tả RFC của IETF theo nhóm 100, thẻ tìm kiếm và phần giải thích các mã chính.

Việc Onul Works chuẩn hóa, dịch, hợp nhất, lưu cache hoặc chuyển đổi đơn vị không hàm ý sự bảo đảm hay phê duyệt từ nhà cung cấp gốc.