以下是常见的 HTTP 状态码分类及详细说明,涵盖了从 1xx
到 5xx
的主要状态码:
一、1xx 信息性状态码(Informational)
表示服务器已收到请求,正在处理中。
- 100 Continue:客户端发送了部分请求,服务器确认继续处理剩余部分(常用于分块上传)。
- 101 Switching Protocols:服务器切换协议(如从 HTTP 切换到 WebSocket)。
- 103 Early Hints(实验性):提前返回提示信息(如资源预加载)。
二、2xx 成功状态码(Successful)
表示请求已成功处理。
- 200 OK:请求成功,返回目标资源(最常见)。
- 201 Created:请求成功并创建了新资源(如 POST 提交数据后)。
- 202 Accepted:请求已接受,但尚未处理完成(异步处理场景)。
- 204 No Content:请求成功,但无返回内容(常用于删除操作后)。
- 206 Partial Content:服务器返回部分资源(支持范围请求,如大文件分片下载)。
- 207 Multi-Status(WebDAV):多个独立操作的状态组合。
三、3xx 重定向状态码(Redirection)
表示需要客户端进一步操作以完成请求。
- 301 Moved Permanently:资源永久重定向,后续请求应使用新 URL。
- 302 Found(或 307 Temporary Redirect):资源临时重定向,客户端应使用原 URL 重新请求。
- 303 See Other:请求的响应可在另一个 URL 中找到(常用于 POST 后跳转至 GET 页面)。
- 304 Not Modified:客户端缓存有效,无需重新获取资源(协商缓存生效)。
- 308 Permanent Redirect:永久重定向,保留请求方法(替代旧的 301,更规范)。
四、4xx 客户端错误状态码(Client Error)
表示客户端请求存在错误。
- 400 Bad Request:请求语法错误,服务器无法理解。
- 401 Unauthorized:请求需要身份验证(未提供或验证失败)。
- 403 Forbidden:服务器拒绝请求(即使认证通过,也无访问权限)。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法(如 GET/POST)不被服务器支持。
- 408 Request Timeout:客户端请求超时,未及时发送数据。
- 409 Conflict:请求与资源当前状态冲突(如版本并发问题)。
- 410 Gone:资源已永久删除(比 404 更明确资源不存在的长期性)。
- 413 Payload Too Large:请求体过大,超出服务器限制。
- 414 URI Too Long:URL 过长,服务器无法处理。
- 415 Unsupported Media Type:请求的 Content-Type 不被支持(如发送 JSON 但服务器只接受 XML)。
- 422 Unprocessable Entity(WebDAV):请求有效但无法处理(如表单验证失败)。
- 429 Too Many Requests:客户端请求频率过高,触发限流。
五、5xx 服务器错误状态码(Server Error)
表示服务器处理请求时发生错误。
- 500 Internal Server Error:服务器内部错误(最常见,原因需排查日志)。
- 501 Not Implemented:服务器不支持请求的功能(如未实现的 API 端点)。
- 502 Bad Gateway:代理服务器从上游服务器收到无效响应(如 Nginx 反向代理时后端服务故障)。
- 503 Service Unavailable:服务器暂时无法处理请求(可能因过载或维护)。
- 504 Gateway Timeout:代理服务器等待上游服务器响应超时。
- 505 HTTP Version Not Supported:服务器不支持请求的 HTTP 版本(如 HTTP/2 未启用)。
补充说明
- 状态码分类规则:
- 第一位数字表示类别(1-5),后两位无固定分类含义。
- 常见浏览器 / 服务器会对部分状态码自动处理(如 301/302 自动跳转,204 不刷新页面)。
- 扩展状态码:
某些协议(如 WebDAV、API 自定义)可能定义额外状态码(如 422、451 等),需结合具体场景理解。
评论区