Chuyển đến nội dung chính

Tài Liệu Tham Chiếu Mã Trạng Thái HTTP miễn phí

Tài liệu tham chiếu có thể tìm kiếm cho tất cả mã trạng thái HTTP — ý nghĩa của từng mã, khi nào được sử dụng và các nguyên nhân phổ biến. Từ 100 đến 511.

Hoạt động ngoại tuyến sau khi tải

61 mã trạng thái

100

Tiếp tục

Máy chủ đã nhận các tiêu đề yêu cầu và khách hàng nên tiếp tục với phần nội dung.

Được sử dụng cho các yêu cầu có Expect: 100-continue. Máy chủ xác nhận rằng nó sẵn sàng nhận phần nội dung trước khi khách hàng gửi nó. Hiếm khi thấy trong các ứng dụng web hiện đại.

RFC 9110 ↗
101

Chuyển đổi Giao thức

Máy chủ đang chuyển đổi giao thức theo yêu cầu của khách hàng.

Thường được sử dụng nhất để nâng cấp WebSocket — khách hàng yêu cầu Upgrade: websocket và máy chủ phản hồi 101 để chuyển đổi.

RFC 9110 ↗
102

Đang Xử lý

Máy chủ đã nhận yêu cầu và đang xử lý nó, nhưng chưa có phản hồi.

Phản hồi sơ bộ WebDAV được gửi để ngăn chặn thời gian chờ của khách hàng trong quá trình hoạt động dài. Không dùng nữa — các máy chủ hiện đại không nên gửi nó.

RFC 2518 ↗
103

Gợi ý Sớm

Các tiêu đề sơ bộ được gửi trước phản hồi cuối cùng.

Cho phép các máy chủ gửi các tiêu đề Link (preload/preconnect) trong khi phản hồi cuối cùng vẫn đang được chuẩn bị, vì vậy trình duyệt có thể bắt đầu tìm nạp các tài sản quan trọng sớm hơn.

RFC 8297 ↗
200

OK

Yêu cầu đã thành công.

Phản hồi thành công tiêu chuẩn. Ý nghĩa tùy thuộc vào phương thức HTTP: GET → tài nguyên được trả về, POST/PUT → hành động hoàn tất.

RFC 9110 ↗
201

Đã Tạo

Một tài nguyên mới đã được tạo thành công.

Thường gặp sau một POST. Phản hồi nên bao gồm tiêu đề Location chỉ đến URL của tài nguyên mới.

RFC 9110 ↗
202

Được Chấp nhận

Yêu cầu được chấp nhận để xử lý, nhưng xử lý chưa hoàn thành.

Đối với các hoạt động không đồng bộ — máy chủ đang xếp hàng công việc. Khách hàng nên thăm dò một điểm cuối trạng thái hoặc kiểm tra lại sau.

RFC 9110 ↗
203

Thông tin Không có Thẩm quyền

Phản hồi được sửa đổi bởi một proxy chuyển đổi.

Yêu cầu thành công, nhưng một trung gian (chẳng hạn như proxy lưu trữ hoặc chuyển đổi) đã thay đổi tải trọng từ máy chủ gốc — ví dụ: nén lại hình ảnh. Hiếm khi xảy ra trong thực tế.

RFC 9110 ↗
204

Không Có Nội dung

Yêu cầu thành công nhưng không có phần nội dung phản hồi.

Thường được sử dụng cho các hoạt động DELETE hoặc cập nhật PUT không cần trả về phần nội dung. Khách hàng không nên rời khỏi trang hiện tại.

RFC 9110 ↗
205

Đặt lại Nội dung

Yêu cầu thành công; khách hàng nên đặt lại chế độ xem tài liệu.

Giống như 204, không có phần nội dung được trả về — nhưng khách hàng cũng được thông báo rằng nên đặt lại biểu mẫu hoặc chế độ xem đã tạo ra yêu cầu (ví dụ: xóa các trường biểu mẫu cho mục nhập tiếp theo).

RFC 9110 ↗
206

Nội dung Một phần

Máy chủ chỉ cung cấp một phần của tài nguyên.

Phản hồi cho yêu cầu Range. Được sử dụng bởi các trình phát video và trình quản lý tải xuống để tiếp tục tải xuống bị gián đoạn hoặc truyền phát các tệp lớn.

RFC 9110 ↗
207

Đa Trạng thái

Phần nội dung phản hồi chứa nhiều mã trạng thái cho nhiều hoạt động.

WebDAV: phần nội dung XML báo cáo kết quả của nhiều hoạt động phụ độc lập — ví dụ: một lần di chuyển hàng loạt nơi một số mục thành công và những mục khác thất bại.

RFC 4918 ↗
208

Đã Được Báo cáo

Các thành viên của một bộ sưu tập đã được liệt kê trước đó trong phản hồi.

WebDAV: được sử dụng bên trong các phản hồi 207 Multi-Status để tránh liệt kê lại các thành viên của cùng một bộ sưu tập khi các liên kết tạo ra vòng lặp.

RFC 5842 ↗
226

Đã Sử dụng IM

Phản hồi là kết quả của các thao tác điều chỉnh phiên bản (instance manipulations) được áp dụng cho tài nguyên.

Mã hóa delta: máy chủ trả về một khác biệt so với phiên bản trước đó thay vì toàn bộ tài nguyên, tiết kiệm băng thông. Rất hiếm khi được thực hiện.

RFC 3229 ↗
300

Nhiều Lựa chọn

Nhiều biểu diễn của tài nguyên có sẵn.

Máy chủ cung cấp nhiều tùy chọn (ví dụ: các định dạng hoặc ngôn ngữ khác nhau) và khách hàng nên chọn một. Hiếm khi được sử dụng, vì đàm phán nội dung tự động thường xử lý điều này.

RFC 9110 ↗
301

Di chuyển Vĩnh viễn

Tài nguyên đã di chuyển vĩnh viễn sang một URL mới.

Sử dụng cho các thay đổi URL vĩnh viễn — các công cụ tìm kiếm sẽ cập nhật chỉ mục của họ. Quyền SEO chuyển sang URL mới.

RFC 9110 ↗
302

Tìm thấy (Chuyển hướng Tạm thời)

Tài nguyên tạm thời ở một URL khác.

Cho biết chuyển hướng không phải vĩnh viễn. Bộ nhớ cache kém tích cực hơn so với 301. Sử dụng cho những thứ như 'yêu cầu đăng nhập, chuyển hướng đến /login'.

RFC 9110 ↗
303

Xem Tài nguyên khác

Chuyển hướng đến một URL khác bằng GET.

Được sử dụng sau các submission POST — phản hồi nói 'POST của bạn đã hoạt động, hãy xem URL GET này để kết quả'. Trình duyệt luôn GET URL mới.

RFC 9110 ↗
304

Không Được Sửa đổi

Phiên bản được lưu trữ vẫn hợp lệ; sử dụng nó.

Phản hồi cho yêu cầu có điều kiện (với các tiêu đề If-None-Match hoặc If-Modified-Since). Tiết kiệm băng thông — không trả về phần nội dung.

RFC 9110 ↗
307

Chuyển hướng Tạm thời

Giống như 302 nhưng giữ nguyên phương thức HTTP gốc.

Nếu bản gốc là POST, chuyển hướng cũng sử dụng POST. Thay thế hiện đại cho 302 khi việc giữ nguyên phương thức là quan trọng.

RFC 9110 ↗
308

Chuyển hướng Vĩnh viễn

Giống như 301 nhưng giữ nguyên phương thức HTTP gốc.

Thay thế hiện đại cho 301 khi bạn muốn các yêu cầu POST vẫn là POST sau khi chuyển hướng.

RFC 9110 ↗
400

Yêu cầu Sai

Máy chủ không thể hiểu yêu cầu do cú pháp được định dạng sai.

Các nguyên nhân phổ biến: JSON được định dạng sai trong phần nội dung, tham số truy vấn không hợp lệ hoặc các trường bắt buộc bị thiếu. Kiểm tra phần nội dung yêu cầu và tiêu đề.

RFC 9110 ↗
401

Chưa được xác thực

Xác thực là bắt buộc và chưa được cung cấp.

Khách hàng phải bao gồm thông tin xác thực (tiêu đề Authorization, cookie, token). 'Unauthorized' là một tên sai lệch — nó thực sự có nghĩa là 'không được xác thực'.

RFC 9110 ↗
402

Yêu cầu Thanh toán

Dành riêng cho sử dụng trong tương lai — đôi khi được sử dụng cho các gói API trả phí.

Ban đầu dự định cho các khoản thanh toán kỹ thuật số. Cách sử dụng hiện đại: API đôi khi trả về 402 khi người dùng vượt quá hạn ngạch trả phí của họ.

RFC 9110 ↗
403

Bị Cấm

Khách hàng được xác thực nhưng không có quyền.

Khác với 401 — người dùng ĐÃ đăng nhập, nhưng tài khoản của họ không có quyền truy cập tài nguyên này. Kiểm tra logic vai trò/quyền.

RFC 9110 ↗
404

Không Tìm thấy

Tài nguyên được yêu cầu không tồn tại.

URL sai, tài nguyên đã bị xóa hoặc chưa từng tồn tại. Các máy chủ đôi khi trả về 404 để ẩn rằng 403 sẽ chính xác hơn.

RFC 9110 ↗
405

Phương thức Không được Phép

Phương thức HTTP được sử dụng không được phép cho tài nguyên này.

Ví dụ: yêu cầu GET tới một điểm cuối chỉ chấp nhận POST. Phản hồi nên bao gồm tiêu đề Allow liệt kê các phương thức hợp lệ.

RFC 9110 ↗
406

Không Được Chấp nhận

Không có biểu diễn nào phù hợp với các tiêu đề Accept của khách hàng.

Khách hàng yêu cầu loại nội dung, ngôn ngữ hoặc mã hóa (thông qua Accept, Accept-Language, Accept-Encoding) mà máy chủ không thể thỏa mãn. Nhiều máy chủ bỏ qua thương lượng nghiêm ngặt và trả về mặc định thay thế.

RFC 9110 ↗
407

Yêu cầu Xác thực Proxy

Máy khách phải xác thực với proxy trước tiên.

Giống như 401, nhưng được phát hành bởi một proxy: khách hàng phải gửi thông tin xác thực Proxy-Authorization. Thấy trên các mạng doanh nghiệp với các proxy xác thực.

RFC 9110 ↗
408

Hết thời gian Yêu cầu

Máy chủ đã hết thời gian chờ đợi yêu cầu.

Máy khách đã mất quá nhiều thời gian để gửi nội dung yêu cầu hoặc để kết nối ở trạng thái không hoạt động. Hãy thử gửi yêu cầu lại.

RFC 9110 ↗
409

Xung đột

Yêu cầu xung đột với trạng thái hiện tại của tài nguyên.

Thường được trả về cho xung đột chỉnh sửa đồng thời hoặc tạo tài nguyên trùng lặp (ví dụ: tạo người dùng với email đã tồn tại).

RFC 9110 ↗
410

Đã xóa

Tài nguyên đã bị xóa và sẽ không quay lại.

Mạnh hơn 404 — máy chủ biết rõ rằng tài nguyên ĐÃ tồn tại nhưng đã bị xóa vĩnh viễn. Các công cụ tìm kiếm sẽ loại bỏ khỏi chỉ mục.

RFC 9110 ↗
411

Cần Độ dài

Máy chủ yêu cầu tiêu đề Content-Length.

Yêu cầu bị từ chối vì nó thiếu tiêu đề Content-Length và máy chủ từ chối nội dung có kích thước không xác định. Thêm tiêu đề và thử lại.

RFC 9110 ↗
412

Điều kiện tiên quyết Không thành công

Điều kiện trong các tiêu đề yêu cầu không được đáp ứng.

Được trả về khi các tiêu đề có điều kiện như If-Match hoặc If-Unmodified-Since không thành công — thường là khóa lạc quan: ai đó đã thay đổi tài nguyên kể từ phiên bản của bạn. Tải lại và thử lại.

RFC 9110 ↗
413

Nội dung Quá lớn

Nội dung yêu cầu vượt quá giới hạn kích thước của máy chủ.

Phổ biến khi tải lên các tệp lớn. Cấu hình máy chủ (nginx, apache) đặt kích thước phần thân tối đa. Kiểm tra cấu hình của máy chủ.

RFC 9110 ↗
414

URI Quá dài

URL yêu cầu vượt quá giới hạn độ dài của máy chủ.

Thường được gây ra bởi các chuỗi truy vấn rất dài (ví dụ: mã hóa dữ liệu trong GET). Chuyển sang nội dung POST hoặc tăng giới hạn máy chủ nếu bạn kiểm soát nó.

RFC 9110 ↗
415

Loại Phương tiện Không được hỗ trợ

Máy chủ không thể xử lý Content-Type được gửi.

Ví dụ: gửi application/xml đến máy chủ chỉ chấp nhận application/json. Đặt tiêu đề Content-Type chính xác.

RFC 9110 ↗
416

Phạm vi Không được thỏa mãn

Phạm vi byte được yêu cầu nằm ngoài kích thước của tài nguyên.

Tiêu đề Range yêu cầu một phần mà tệp không có — ví dụ: tiếp tục tải về qua cuối tệp. Phản hồi nên bao gồm Content-Range với kích thước thực tế.

RFC 9110 ↗
417

Kỳ vọng Không được đáp ứng

Máy chủ không thể đáp ứng các yêu cầu của tiêu đề Expect.

Được gửi khi máy chủ không hỗ trợ Expect: 100-continue. Một số máy khách gửi tiêu đề này theo mặc định trên các POST lớn; vô hiệu hóa nó thường khắc phục lỗi.

RFC 9110 ↗
418

Tôi là Ấm trà

Máy chủ từ chối pha cà phê vì nó là ấm trà.

Một trò đùa Ngày Cá tháng Tư từ năm 1998 (RFC 2324). Một số API thực tế sử dụng nó cho các trò đùa hoặc để đánh dấu các điểm cuối không được dùng nữa. Không dùng cho sản xuất.

RFC 2324 ↗
421

Yêu cầu Hướng sai

Yêu cầu đã được gửi đến máy chủ không thể tạo phản hồi cho nó.

Phổ biến với tái sử dụng kết nối HTTP/2: yêu cầu đã đến máy chủ không được cấu hình cho tên máy chủ đích. Máy khách nên thử lại trên kết nối mới.

RFC 9110 ↗
422

Nội dung Không thể xử lý

Yêu cầu hợp lệ về mặt cú pháp nhưng sai về mặt ngữ nghĩa.

Ví dụ: JSON được phân tích cú pháp chính xác nhưng thiếu trường bắt buộc hoặc giá trị trường nằm ngoài phạm vi. Phổ biến trong phản hồi xác thực API REST.

RFC 9110 ↗
423

Bị khóa

Tài nguyên bị khóa.

WebDAV: tài nguyên nguồn hoặc đích bị khóa bởi máy khách khác, vì vậy không thể thực hiện thao tác. Chờ đợi để khóa được giải phóng hoặc phá vỡ nó bằng token thích hợp.

RFC 4918 ↗
424

Phụ thuộc Không thành công

Yêu cầu không thành công vì yêu cầu phụ thuộc trước đó không thành công.

WebDAV: trong chuỗi các hoạt động phụ thuộc, hành động trước đó không thành công, vì vậy hành động này không được thực hiện. Tìm xem lỗi trước đó để biết nguyên nhân gốc rễ.

RFC 4918 ↗
425

Quá sớm

Máy chủ từ chối xử lý yêu cầu có thể được phát lại.

Liên quan đến TLS 1.3 0-RTT (dữ liệu sớm): máy chủ sẽ không mạo hiểm xử lý yêu cầu có thể được phát lại. Máy khách nên thử lại sau khi bắt tay hoàn tất.

RFC 8470 ↗
426

Yêu cầu Nâng cấp

Máy khách phải chuyển sang giao thức khác.

Máy chủ từ chối phục vụ yêu cầu qua giao thức hiện tại nhưng sẽ thực hiện sau nâng cấp — phản hồi bao gồm tiêu đề Upgrade đặt tên giao thức cần thiết.

RFC 9110 ↗
428

Điều kiện tiên quyết Cần thiết

Máy chủ yêu cầu yêu cầu phải có điều kiện.

Máy chủ yêu cầu tiêu đề có điều kiện (như If-Match) để ngăn chặn xung đột mất cập nhật. Tải tài nguyên, ghi lại ETag của nó và gửi lại với If-Match.

RFC 6585 ↗
429

Quá Nhiều Yêu cầu

Máy khách đang bị giới hạn tốc độ.

Chậm lại. Phản hồi nên bao gồm tiêu đề Retry-After chỉ ra khi nên thử lại. Phổ biến với các API có hạn ngạch yêu cầu.

RFC 6585 ↗
431

Trường Tiêu đề Yêu cầu Quá lớn

Tiêu đề quá lớn để máy chủ xử lý.

Một tiêu đề hoặc tổng kích thước tiêu đề vượt quá giới hạn — thường được gây ra bởi cookie quá lớn. Xóa cookie hoặc giảm những gì ứng dụng của bạn lưu trữ trong chúng.

RFC 6585 ↗
451

Không Sử dụng Được Vì Lý do Pháp lý

Truy cập bị từ chối do yêu cầu pháp lý.

Tài nguyên bị chặn vì lý do pháp lý — kiểm duyệt, lệnh tòa án hoặc quy định khu vực. Số này là tham chiếu đến cuốn tiểu thuyết Fahrenheit 451.

RFC 7725 ↗
500

Lỗi Máy chủ Nội bộ

Máy chủ gặp phải một tình trạng không mong muốn.

Một mục đích chung cho các lỗi phía máy chủ. Kiểm tra nhật ký máy chủ để tìm nguyên nhân thực tế: ngoại lệ không được xử lý, lỗi cơ sở dữ liệu, v.v.

RFC 9110 ↗
501

Không được Thực hiện

Máy chủ không hỗ trợ chức năng được yêu cầu.

Ví dụ: máy chủ không nhận dạng phương thức HTTP. Hiếm trong thực tế — thường bạn sẽ thấy 405.

RFC 9110 ↗
502

Gateway Không hợp lệ

Máy chủ, hoạt động như gateway, nhận được phản hồi không hợp lệ từ máy chủ thượng nguồn.

Phổ biến trong kiến trúc vi dịch vụ. Bộ cân bằng tải hoặc máy chủ proxy ngược của bạn nhận được phản hồi không hợp lệ từ dịch vụ phía sau.

RFC 9110 ↗
503

Dịch vụ Không Sử dụng Được

Máy chủ tạm thời không thể xử lý yêu cầu.

Hoặc đang bảo trì hoặc bị quá tải. Phản hồi nên bao gồm tiêu đề Retry-After. Thường được trả về trong các triển khai.

RFC 9110 ↗
504

Hết thời gian chờ của gateway

Máy chủ gateway đã hết thời gian chờ đợi phản hồi phía trước.

Dịch vụ phía sau không phản hồi đủ nhanh. Kiểm tra tình trạng dịch vụ phía trước và cấu hình hết thời gian chờ.

RFC 9110 ↗
505

Phiên bản HTTP Không được Hỗ trợ

Máy chủ không hỗ trợ phiên bản HTTP được sử dụng trong yêu cầu.

Phiên bản HTTP chính của yêu cầu không được máy chủ hỗ trợ. Hầu như không bao giờ được nhìn thấy với các máy khách hiện đại.

RFC 9110 ↗
506

Biến thể Cũng Thương lượng

Máy chủ có cấu hình thương lượng nội dung sai.

Thương lượng nội dung minh bạch kết thúc trong một vòng lặp: biến thể đã chọn tự nó được cấu hình để thương lượng. Chỉ ra lỗi cấu hình máy chủ.

RFC 2295 ↗
507

Lưu trữ Không đủ

Máy chủ hết dung lượng đĩa.

Xuất phát từ WebDAV nhưng đôi khi được sử dụng bởi các máy chủ chung. Có nghĩa là máy chủ không thể lưu yêu cầu vì các ràng buộc lưu trữ.

RFC 4918 ↗
508

Vòng lặp Được phát hiện

Máy chủ phát hiện vòng lặp vô hạn trong khi xử lý yêu cầu.

WebDAV: xử lý yêu cầu Depth: infinity đã nhập một vòng lặp (ví dụ: ràng buộc tròn). Thao tác đã bị chấm dứt.

RFC 5842 ↗
510

Không Mở rộng

Cần những mở rộng thêm cho yêu cầu.

Từ HTTP Extension Framework lỗi thời: máy chủ cần thêm thông tin trước khi nó có thể hoàn thành yêu cầu. Hầu như không được sử dụng trên web hiện đại.

RFC 2774 ↗
511

Xác thực Mạng Cần thiết

Máy khách phải xác thực để có quyền truy cập mạng.

Được sử dụng bởi các cổng giam (WiFi khách sạn/sân bay) để chỉ ra rằng người dùng phải đăng nhập vào mạng trước khi truy cập các trang web bên ngoài.

RFC 6585 ↗

Công dụng phổ biến

  • Tham Khảo cho Thiết Kế APIKhi thiết kế API REST, chọn mã trạng thái đúng cho mỗi phản hồi.
  • Tra Cứu Mã Lỗi Nhanh ChóngKhi ứng dụng của bạn trả về lỗi HTTP khó hiểu, hãy tra cứu ý nghĩa thực sự của nó.
  • Tìm Hiểu Mã Trạng Thái HTTPTham khảo toàn diện cho học sinh và nhà phát triển tìm hiểu HTTP và REST.
  • Tham Khảo Nhanh Trong Sự CốTrong sự cố sản xuất, tra cứu nhanh ý nghĩa của mỗi mã trạng thái.
  • Tham khảo cho Tài liệu APIKhi viết tài liệu API, hãy liên kết đến các mô tả có thẩm quyền về mã trạng thái bạn trả lại.

Cách hoạt động

Công cụ này là tài liệu tham khảo phía máy khách xây dựng quanh bảng tra cố định gồm 63 mã trạng thái HTTP thuộc cả năm nhóm (1xx–5xx), mỗi mã kèm số RFC định nghĩa nó. Không gọi máy chủ, không API bên ngoài và không yêu cầu mạng — mọi thao tác lọc và hiển thị diễn ra trong trình duyệt bằng các phương thức mảng và chuỗi tích hợp của JavaScript.

  1. 1
    Bảng tra được tải
    Toàn bộ 63 mã trạng thái đăng ký với IANA được nhúng trực tiếp trong công cụ dưới dạng mảng JavaScript, mỗi mục mang mã số, tên tiếng Anh chuẩn, nhóm phân loại và RFC cụ thể định nghĩa nó (ví dụ RFC 9110 cho hầu hết mã HTTP/1.1, RFC 6585 cho 429 Too Many Requests, RFC 2324 cho 418 I'm a Teapot).
  2. 2
    Lọc chạy trong bộ nhớ
    Khi bạn gõ hoặc chọn bộ lọc nhóm, Array.filter của JavaScript chạy trên danh sách trong bộ nhớ, so khớp truy vấn với mã số trạng thái, tên chuẩn và cả chuỗi mô tả ngắn lẫn dài bằng String.includes — không trì hoãn, không gọi máy chủ.
  3. 3
    Mở rộng chi tiết kèm liên kết RFC
    Mỗi kết quả hiển thị dưới dạng phần tử HTML details/summary. Mở rộng một mục sẽ hiện giải thích chi tiết và liên kết trực tiếp đến RFC chính thức trên rfc-editor.org, để bạn đọc đúng văn bản đặc tả của bất kỳ mã nào.
  4. 4
    Liên kết sâu và sao chép
    Mở một mục sẽ cập nhật hash URL thành mã số (ví dụ #404), giúp trang dễ chia sẻ và đánh dấu. Nút sao chép ghi chuỗi chuẩn (ví dụ '404 Not Found') vào bộ nhớ tạm qua navigator.clipboard API của trình duyệt.

Công cụ liên quan

Câu hỏi thường gặp