Continue
Server đã nhận header của request và client có thể gửi phần thân. Dùng với "Expect: 100-continue" trước khi upload dung lượng lớn.
RFC 9110Tìm theo số hoặc tên, hoặc lọc theo nhóm. Mỗi mã có liên kết tới đặc tả.
Request đã được nhận và quá trình tiếp tục. Hiếm khi thấy trong code ứng dụng.
Server đã nhận header của request và client có thể gửi phần thân. Dùng với "Expect: 100-continue" trước khi upload dung lượng lớn.
RFC 9110Server đồng ý chuyển giao thức theo yêu cầu của client, ví dụ từ HTTP/1.1 sang WebSocket.
RFC 9110WebDAV: server đã nhận request và vẫn đang xử lý, nên client không nên ngắt vì quá thời gian.
RFC 2518Gửi sớm các header Link để trình duyệt tải trước CSS hay font trong lúc server chuẩn bị phản hồi chính.
RFC 8297Request đã được nhận, hiểu và chấp nhận.
Một tài nguyên mới đã được tạo, thường sau POST. Header Location nên trỏ tới tài nguyên đó.
RFC 9110Request đã được nhận để xử lý nhưng chưa xong, ví dụ một tác vụ nền đang chờ trong hàng đợi.
RFC 9110Phản hồi thành công nhưng đã bị một proxy biến đổi, nên không hoàn toàn giống bản server gốc gửi.
RFC 9110Thành công nhưng không có nội dung trả về. Hay dùng cho DELETE hoặc lưu form mà không tải lại trang.
RFC 9110Chỉ trả về một phần tài nguyên theo header Range. Dùng cho tải xuống tiếp tục được và tua video.
RFC 9110WebDAV: các thành phần đã liệt kê trước đó trong phản hồi không được lặp lại.
RFC 5842Cần thêm một bước, thường là đi tới URL khác, để hoàn tất request.
Có nhiều phiên bản của tài nguyên (ví dụ ngôn ngữ hay định dạng) và client nên chọn một.
RFC 9110Tài nguyên đã chuyển vĩnh viễn sang URL mới ghi trong Location. Công cụ tìm kiếm chuyển thứ hạng sang URL mới.
RFC 9110Tài nguyên tạm thời ở URL khác. Client vẫn dùng URL gốc; trình duyệt có thể đổi POST thành GET.
RFC 9110Kết quả nằm ở URL khác, lấy bằng GET. Dùng sau khi POST form để tránh gửi lại (mẫu Post/Redirect/Get).
RFC 9110Bản cache vẫn còn hợp lệ (If-None-Match hoặc If-Modified-Since khớp), nên không gửi phần thân.
RFC 9110Chuyển hướng tạm thời giữ nguyên phương thức và phần thân, POST vẫn là POST.
RFC 9110Chuyển hướng vĩnh viễn giữ nguyên phương thức và phần thân. Phiên bản chặt chẽ của 301.
RFC 9110Request sai: cú pháp lỗi, thiếu xác thực, không có quyền hoặc tài nguyên không tồn tại.
Server không xử lý được vì request sai định dạng: cú pháp lỗi, JSON hỏng hoặc tham số sai.
RFC 9110Thiếu hoặc sai thông tin xác thực. Phản hồi có header WWW-Authenticate cho biết cách đăng nhập.
RFC 9110Dành cho hệ thống thanh toán số trong tương lai; một số API dùng khi cần trả phí gói hay hạn mức.
RFC 9110Server biết bạn là ai nhưng từ chối thao tác vì bạn không có quyền. Đăng nhập lại cũng không giúp được.
RFC 9110Phương thức HTTP không được hỗ trợ cho URL này, ví dụ POST lên tài nguyên chỉ đọc. Header Allow liệt kê phương thức hợp lệ.
RFC 9110Server không tạo được phản hồi khớp với các header Accept (định dạng, ngôn ngữ hay kiểu mã hóa).
RFC 9110Request xung đột với trạng thái hiện tại, ví dụ xung đột chỉnh sửa hoặc trùng khóa duy nhất.
RFC 9110Tài nguyên đã bị xóa có chủ đích và sẽ không quay lại. Công cụ tìm kiếm gỡ nó nhanh hơn 404.
RFC 9110Một header điều kiện như If-Match không khớp, thường dùng để tránh ghi đè thay đổi của người khác.
RFC 9110Phần thân request lớn hơn mức server cho phép (trước đây gọi là "Payload Too Large").
RFC 9110URL dài hơn mức server chấp nhận, thường do nhét quá nhiều dữ liệu vào query string của GET.
RFC 9110Định dạng phần thân (Content-Type) không được hỗ trợ, ví dụ gửi XML tới API chỉ nhận JSON.
RFC 9110Trò đùa Cá tháng Tư từ giao thức điều khiển ấm cà phê: một ấm trà không pha được cà phê. Một số site dùng làm easter egg.
RFC 2324Request tới một server không thể trả lời cho host này, ví dụ khi kết nối HTTP/2 dùng lại trỏ sai origin.
RFC 9110Cú pháp đúng nhưng nội dung không hợp lệ, ví dụ không qua được quy tắc kiểm tra (trước đây là "Unprocessable Entity").
RFC 9110Client gửi quá nhiều request trong một khoảng thời gian (giới hạn tần suất). Retry-After cho biết khi nào thử lại.
RFC 6585Tổng header quá lớn hoặc một header quá lớn, thường do cookie phình to.
RFC 6585Tài nguyên bị chặn vì lý do pháp lý, như kiểm duyệt hay lệnh tòa. Con số lấy từ tiểu thuyết "Fahrenheit 451".
RFC 7725Request có vẻ hợp lệ nhưng server xử lý thất bại.
Gateway hoặc proxy nhận phản hồi không hợp lệ từ server phía sau, ví dụ khi ứng dụng sau Nginx bị sập.
RFC 9110Server tạm thời không xử lý được vì quá tải hoặc đang bảo trì. Retry-After có thể cho biết khi nào quay lại.
RFC 9110Cấu hình thương lượng nội dung sai: chính phiên bản được chọn lại cố thương lượng tiếp.
RFC 2295Client phải đăng nhập vào mạng trước, thường là trang captive portal Wi-Fi của khách sạn hay sân bay.
RFC 6585Mỗi phản hồi HTTP đều bắt đầu bằng một mã trạng thái gồm ba chữ số cho client biết request diễn ra thế nào. Chữ số đầu xác định nhóm: 1xx thông tin, 2xx thành công, 3xx chuyển hướng, 4xx lỗi phía client và 5xx lỗi phía server. Trình duyệt, công cụ tìm kiếm, cache, API client và công cụ giám sát đều hành động dựa trên các mã này, nên chọn đúng mã rất quan trọng: 301 chuyển giá trị SEO sang URL mới còn 302 thì không, 503 báo crawler quay lại sau, 429 báo API client giảm tốc. Các mã chủ yếu được định nghĩa trong RFC 9110 (HTTP Semantics), một số nằm ở các RFC riêng.
Toàn bộ tài liệu được hiển thị sẵn trong trang, nên tìm kiếm chạy tức thì trong trình duyệt mà không gửi request nào lên server.
Gõ một số như 404, một tên như "gateway" hoặc một từ như "redirect" vào ô tìm kiếm. Kết quả cập nhật khi bạn gõ.
Dùng các nút nhóm (1xx đến 5xx) để thu hẹp danh sách, ví dụ xem tất cả lỗi phía client cùng lúc.
Đọc phần giải thích dưới mỗi mã để biết ý nghĩa, khi nào server nên trả về và client phản ứng ra sao.
Mở liên kết RFC để xem đặc tả chính xác, hoặc chia sẻ link thẳng tới một mã bằng anchor như #429.
Trả 201 Created kèm header Location sau POST, 204 No Content sau DELETE, 400 khi JSON sai định dạng, 422 khi dữ liệu không hợp lệ và 409 khi request xung đột với trạng thái hiện tại.
Dùng 301 hoặc 308 cho chuyển hướng vĩnh viễn để công cụ tìm kiếm chuyển thứ hạng, 302 hoặc 307 cho chuyển hướng tạm thời như A/B test. 308 và 307 còn giữ nguyên phương thức POST.
Trả 401 khi người dùng chưa đăng nhập hoặc token không hợp lệ, 403 khi đã biết người dùng nhưng không có quyền. Nhiều API trả 404 thay cho 403 để giấu việc tài nguyên tồn tại.
Trả 503 kèm header Retry-After khi bảo trì để crawler giữ thứ hạng, và 429 kèm Retry-After khi client vượt giới hạn tần suất.
401 Unauthorized nghĩa là "bạn là ai?": thiếu hoặc sai xác thực. 403 Forbidden nghĩa là "tôi biết bạn là ai nhưng bạn không được làm việc này". Đăng nhập lại sửa được 401, không sửa được 403.
Dùng 301 (hoặc 308) khi URL cũ mất hẳn, 302 (hoặc 307) khi nó sẽ quay lại. Dùng 302 cho chuyển hướng vĩnh viễn có thể làm công cụ tìm kiếm chậm lập chỉ mục URL mới.
502 Bad Gateway: proxy nhận phản hồi không hợp lệ từ server phía sau. 503 Service Unavailable: server quá tải hoặc đang bảo trì. 504 Gateway Timeout: server phía sau không trả lời kịp.
Không. Client, cache và công cụ giám sát đều dựa vào mã trạng thái. Trả 200 cho lỗi sẽ che lỗi khỏi các công cụ và có thể khiến trang lỗi bị lập chỉ mục thành "soft 404".