Mã trạng thái HTTP
Giải thích dễ hiểu mọi mã trạng thái HTTP: ý nghĩa, nguyên nhân thường gặp, cách khắc phục, phản hồi mẫu và RFC định nghĩa nó.
70 mã trạng thái
1xx Thông tin
Phản hồi tạm thời: yêu cầu đã được nhận và đang tiếp tục xử lý.
100 Continue Tiếp tục Máy chủ đã nhận các header của yêu cầu và client có thể gửi phần thân. Đây là phản hồi tạm thời được gửi trước trạng thái cuối cùng. 101 Switching Protocols Chuyển đổi giao thức Máy chủ đồng ý chuyển sang giao thức mà client yêu cầu trong header Upgrade, thường là WebSocket. Sau phản hồi này kết nối dùng giao thức mới. 102 Processing Đang xử lý Phản hồi tạm thời của WebDAV báo cho client rằng máy chủ vẫn đang xử lý một yêu cầu dài, nên chưa nên hết thời gian chờ. Mã này đã lỗi thời và hiếm khi được gửi ngày nay. 103 Early Hints Gợi ý sớm Phản hồi tạm thời gửi sớm các header Link để trình duyệt có thể tải trước CSS, phông chữ hoặc kết nối trước tới nguồn trong khi máy chủ vẫn đang dựng trang cuối cùng.
2xx Thành công
Yêu cầu đã được nhận, hiểu và chấp nhận.
200 OK OK Yêu cầu thành công. Với GET, phần thân chứa tài nguyên; với POST, nó chứa kết quả của hành động. 201 Created Đã tạo Yêu cầu thành công và đã tạo một tài nguyên mới. Header Location thường trỏ tới nó. 202 Accepted Đã chấp nhận Yêu cầu đã được nhận để xử lý nhưng chưa xử lý xong. Kết quả chưa biết vào lúc phản hồi. 203 Non-Authoritative Information Thông tin không chính thức Yêu cầu thành công, nhưng một proxy biến đổi đã sửa nội dung từ phản hồi 200 của máy chủ gốc. 204 No Content Không có nội dung Yêu cầu thành công và không có phần thân để trả về. Header vẫn có thể mang siêu dữ liệu như ETag mới. 205 Reset Content Đặt lại nội dung Yêu cầu thành công và client nên đặt lại khung hiển thị tài liệu, ví dụ xóa trắng biểu mẫu vừa gửi. Không gửi phần thân. 206 Partial Content Nội dung một phần Máy chủ chỉ trả về một phần tài nguyên theo yêu cầu của header Range. Content-Range cho biết những byte nào được gửi. 207 Multi-Status Đa trạng thái Phản hồi WebDAV có phần thân XML chứa trạng thái riêng cho từng tài nguyên bị ảnh hưởng bởi một yêu cầu. 208 Already Reported Đã báo cáo Dùng bên trong phần thân WebDAV 207 để nói rằng một tài nguyên đã được liệt kê trước đó trong phản hồi, tránh trùng lặp khi các binding tạo vòng lặp. 226 IM Used Đã dùng IM Máy chủ đáp ứng GET với một hoặc nhiều thao tác biến đổi thể hiện (mã hóa delta), nên phần thân là phần khác biệt chứ không phải toàn bộ tài nguyên.
3xx Chuyển hướng
Máy khách cần thêm một bước, thường là đi tới URL mới.
300 Multiple Choices Nhiều lựa chọn Tài nguyên có nhiều biểu diễn (ngôn ngữ, định dạng) và client hoặc người dùng nên chọn một. Máy chủ có thể gợi ý lựa chọn ưu tiên qua Location. 301 Moved Permanently Đã chuyển vĩnh viễn Tài nguyên đã chuyển vĩnh viễn tới URL trong Location. Client và công cụ tìm kiếm nên dùng URL mới từ nay. 302 Found Đã tìm thấy Tài nguyên tạm thời nằm ở URL khác. Client nên tiếp tục dùng URL gốc cho các yêu cầu sau. 303 See Other Xem nơi khác Máy chủ hướng client lấy một URL khác bằng GET, thường để hiển thị kết quả của một POST. 304 Not Modified Không thay đổi Bản sao lưu đệm client đang có vẫn còn hợp lệ, nên máy chủ không gửi phần thân. Đây là phản hồi cho yêu cầu có điều kiện với If-None-Match hoặc If-Modified-Since. 305 Use Proxy Dùng proxy Đã lỗi thời. Trước đây nó yêu cầu client lặp lại yêu cầu qua proxy trong Location. Trình duyệt bỏ qua nó vì lý do bảo mật. 307 Temporary Redirect Chuyển hướng tạm thời Tài nguyên tạm thời ở URL khác, và client phải lặp lại yêu cầu ở đó với cùng phương thức và phần thân. 308 Permanent Redirect Chuyển hướng vĩnh viễn Tài nguyên đã chuyển vĩnh viễn, và client phải lặp lại yêu cầu tại URL mới với cùng phương thức và phần thân.
4xx Lỗi phía máy khách
Yêu cầu có vấn đề mà máy khách cần sửa.
400 Bad Request Yêu cầu không hợp lệ Máy chủ không thể xử lý yêu cầu vì nó sai định dạng: cú pháp không hợp lệ, đóng khung sai hoặc giá trị không phân tích được. 401 Unauthorized Chưa xác thực Yêu cầu thiếu thông tin xác thực hợp lệ. Dù tên gọi là Unauthorized, nó nghĩa là chưa xác thực: hãy đăng nhập hoặc gửi token hợp lệ. 402 Payment Required Yêu cầu thanh toán Được dành cho tương lai, nhưng trên thực tế các dịch vụ trả mã này khi cần thanh toán hoặc gói trả phí để tiếp tục. 403 Forbidden Bị cấm Máy chủ hiểu yêu cầu nhưng từ chối cấp quyền. Đăng nhập lại không giúp được trừ khi quyền thay đổi. 404 Not Found Không tìm thấy Máy chủ không tìm thấy gì tại URL được yêu cầu. Nó không nói gì về việc tài nguyên từng tồn tại hay sẽ quay lại. 405 Method Not Allowed Phương thức không được phép URL tồn tại nhưng không hỗ trợ phương thức HTTP đã dùng. Header Allow liệt kê các phương thức hoạt động. 406 Not Acceptable Không chấp nhận được Máy chủ không thể tạo phản hồi ở bất kỳ định dạng nào mà header Accept của client cho phép. 407 Proxy Authentication Required Cần xác thực proxy Một proxy giữa client và máy chủ yêu cầu xác thực trước khi chuyển tiếp yêu cầu. 408 Request Timeout Hết thời gian yêu cầu Máy chủ đóng kết nối vì client không gửi yêu cầu hoàn chỉnh kịp thời. 409 Conflict Xung đột Yêu cầu xung đột với trạng thái hiện tại của tài nguyên, ví dụ trùng lặp hoặc chỉnh sửa đồng thời. 410 Gone Đã mất Tài nguyên đã mất vĩnh viễn và không có địa chỉ mới. Khác với 404, máy chủ khẳng định điều này một cách có chủ ý. 411 Length Required Cần độ dài Máy chủ yêu cầu header Content-Length nhưng yêu cầu không có. 412 Precondition Failed Điều kiện tiên quyết thất bại Một điều kiện trong header yêu cầu, như If-Match hoặc If-Unmodified-Since, cho kết quả sai, nên máy chủ không áp dụng yêu cầu. 413 Content Too Large Nội dung quá lớn Phần thân yêu cầu lớn hơn mức máy chủ muốn hoặc có thể xử lý. Trước đây gọi là Payload Too Large. 414 URI Too Long URI quá dài URL của yêu cầu dài hơn mức máy chủ chịu diễn giải. 415 Unsupported Media Type Kiểu dữ liệu không được hỗ trợ Máy chủ từ chối yêu cầu vì kiểu dữ liệu (Content-Type) hoặc mã hóa của phần thân không được hỗ trợ. 416 Range Not Satisfiable Phạm vi không thể đáp ứng Header Range yêu cầu các byte nằm ngoài kích thước của tài nguyên. 417 Expectation Failed Kỳ vọng không được đáp ứng Máy chủ không thể đáp ứng yêu cầu trong header Expect, thường là Expect: 100-continue. 418 I'm a teapot Tôi là ấm trà Một trò đùa Cá tháng Tư từ Hyper Text Coffee Pot Control Protocol: máy chủ là ấm trà và từ chối pha cà phê. Một số trang dùng nó để đùa hoặc chặn bot. 421 Misdirected Request Yêu cầu bị định tuyến sai Yêu cầu tới một máy chủ không được cấu hình để trả lời cho host đó, thường vì một kết nối HTTP/2 được dùng lại cho tên miền khác. 422 Unprocessable Content Nội dung không thể xử lý Yêu cầu đúng định dạng nhưng chứa lỗi ngữ nghĩa, nên máy chủ không thể xử lý. Trước đây là Unprocessable Entity. 423 Locked Đã khóa WebDAV: tài nguyên đang bị khóa, nên không thể áp dụng phương thức. 424 Failed Dependency Phụ thuộc thất bại WebDAV: hành động thất bại vì nó phụ thuộc vào một hành động khác trong cùng yêu cầu đã thất bại. 425 Too Early Quá sớm Máy chủ từ chối xử lý yêu cầu gửi trong dữ liệu sớm của TLS 1.3 (0-RTT) vì nó có thể bị phát lại. 426 Upgrade Required Cần nâng cấp Máy chủ từ chối yêu cầu với giao thức hiện tại và yêu cầu client nâng cấp, ví dụ lên TLS hoặc HTTP/2, như ghi trong header Upgrade. 428 Precondition Required Cần điều kiện tiên quyết Máy chủ yêu cầu yêu cầu phải có điều kiện (If-Match v.v.) để tránh mất cập nhật. 429 Too Many Requests Quá nhiều yêu cầu Client đã gửi quá nhiều yêu cầu trong một khoảng thời gian (giới hạn tốc độ). Retry-After có thể cho biết phải chờ bao lâu. 431 Request Header Fields Too Large Trường header yêu cầu quá lớn Các header của yêu cầu quá lớn, có thể là một header hoặc tất cả cộng lại. 451 Unavailable For Legal Reasons Không khả dụng vì lý do pháp lý Máy chủ không thể cung cấp tài nguyên vì lý do pháp lý, như lệnh tòa án hoặc kiểm duyệt của chính phủ. Con số ám chỉ Fahrenheit 451. 499 Client Closed Request (Không chuẩn) Client đóng yêu cầu nginx ghi 499 khi client đóng kết nối trước khi máy chủ gửi phản hồi. Client không bao giờ thấy mã này.
5xx Lỗi phía máy chủ
Máy chủ không xử lý được một yêu cầu hợp lệ.
500 Internal Server Error Lỗi máy chủ nội bộ Máy chủ gặp tình huống không mong đợi và không thể hoàn tất yêu cầu. Đây là mã chung cho các lỗi phía máy chủ. 501 Not Implemented Chưa triển khai Máy chủ không hỗ trợ chức năng cần thiết, thường là chính phương thức yêu cầu. 502 Bad Gateway Gateway lỗi Một gateway hoặc proxy nhận phản hồi không hợp lệ từ máy chủ upstream mà nó chuyển tiếp yêu cầu tới. 503 Service Unavailable Dịch vụ không khả dụng Máy chủ tạm thời không thể xử lý yêu cầu do quá tải hoặc bảo trì. Retry-After có thể cho biết khi nào thử lại. 504 Gateway Timeout Gateway hết thời gian chờ Một gateway hoặc proxy không nhận được phản hồi kịp thời từ máy chủ upstream. 505 HTTP Version Not Supported Phiên bản HTTP không được hỗ trợ Máy chủ không hỗ trợ phiên bản HTTP dùng trong yêu cầu. 506 Variant Also Negotiates Biến thể cũng thương lượng Thương lượng nội dung trong suốt bị cấu hình sai: biến thể được chọn lại cũng được thiết lập để thương lượng, tạo ra vòng lặp. 507 Insufficient Storage Không đủ dung lượng lưu trữ Máy chủ không thể lưu biểu diễn cần thiết để hoàn tất yêu cầu (hết dung lượng đĩa hoặc hạn mức). Có nguồn gốc từ WebDAV. 508 Loop Detected Phát hiện vòng lặp Máy chủ phát hiện vòng lặp vô hạn khi xử lý yêu cầu có Depth: infinity (WebDAV). Một số nhà cung cấp hosting cũng dùng nó cho giới hạn tài nguyên. 510 Not Extended Chưa mở rộng Cần thêm phần mở rộng để máy chủ đáp ứng yêu cầu (HTTP Extension Framework). Framework này nay đã ở trạng thái lịch sử. 511 Network Authentication Required Cần xác thực mạng Client phải xác thực để truy cập mạng, thường ở captive portal (Wi-Fi khách sạn hoặc sân bay). 520 Web Server Returned an Unknown Error (Không chuẩn) Lỗi máy chủ không xác định Riêng của Cloudflare: máy chủ gốc trả phản hồi rỗng, không xác định hoặc bất thường. 521 Web Server Is Down (Không chuẩn) Máy chủ web ngừng hoạt động Riêng của Cloudflare: máy chủ gốc từ chối kết nối. 522 Connection Timed Out (Không chuẩn) Kết nối hết thời gian chờ Riêng của Cloudflare: kết nối TCP tới máy chủ gốc đã hết thời gian chờ. 523 Origin Is Unreachable (Không chuẩn) Không truy cập được máy chủ gốc Riêng của Cloudflare: Cloudflare không thể tới máy chủ gốc, thường do sự cố DNS hoặc định tuyến. 524 A Timeout Occurred (Không chuẩn) Đã hết thời gian chờ Riêng của Cloudflare: đã kết nối được tới máy chủ gốc, nhưng nó không gửi phản hồi HTTP kịp thời (mặc định 100 giây). 525 SSL Handshake Failed (Không chuẩn) Bắt tay SSL thất bại Riêng của Cloudflare: bắt tay TLS giữa Cloudflare và máy chủ gốc thất bại. 526 Invalid SSL Certificate (Không chuẩn) Chứng chỉ SSL không hợp lệ Riêng của Cloudflare: ở chế độ SSL Full (strict), chứng chỉ của máy chủ gốc không hợp lệ, hết hạn, tự ký hoặc không khớp tên host.