完整 HTTP 状态码

完整 HTTP 状态码(标准 RFC 定义 + 详细释义,分 5 大类)

HTTP 状态码共分为 5 大类别,第一位数字代表响应类型: 1xx:信息提示 | 2xx:请求成功 | 3xx:重定向 | 4xx:客户端错误 | 5xx:服务器错误

一、1xx 信息类(临时响应,服务器已接收请求,等待客户端继续操作)

  1. 100 Continue 释义:服务器已收到请求头,客户端可以继续发送请求体(常用于大文件上传前预检)。
  2. 101 Switching Protocols 释义:服务器同意切换协议,最典型场景:HTTP 升级为 WebSocket。
  3. 102 Processing(WebDAV 扩展) 释义:服务器正在处理复杂请求,暂时无法返回结果,避免客户端超时断开。
  4. 103 Early Hints 释义:服务器提前推送页面预加载资源(CSS、JS 等),优化网页加载速度。

二、2xx 成功类(请求被服务器正常接收、处理并返回结果)

  1. 200 OK 释义:最常用,请求完全成功,正常返回所需数据 / 页面。
  2. 201 Created 释义:资源创建成功,一般用于 POST 新增数据(新建用户、新建文件)。
  3. 202 Accepted 释义:请求已接收,进入异步队列处理,当下不会立刻完成。
  4. 203 Non-Authoritative Information 释义:返回的数据来自代理服务器缓存副本,并非源服务器原始数据。
  5. 204 No Content 释义:处理成功,但不返回任何响应内容,常用于删除接口。
  6. 205 Reset Content 释义:处理完成,要求客户端清空表单、重置页面输入框。
  7. 206 Partial Content 释义:范围请求生效,返回资源的指定片段,用于断点续传、视频分片播放。
  8. 207 Multi-Status(WebDAV) 释义:批量操作多个资源,分别返回每个资源的执行状态。
  9. 208 Already Reported(WebDAV) 释义:集合内的资源信息已经在之前响应中返回,不再重复推送。
  10. 226 IM Used 释义:服务器使用增量压缩优化返回资源,节省传输流量。

三、3xx 重定向类(需要客户端发起新请求,才能完成访问)

  1. 300 Multiple Choices 释义:同一资源对应多个可选地址,由客户端自行选择跳转。
  2. 301 Moved Permanently 释义:永久重定向,资源地址永久变更,搜索引擎会更新收录链接。
  3. 302 Found 释义:临时重定向,地址只是短期失效,搜索引擎保留原链接。
  4. 303 See Other 释义:必须用 GET 方式访问跳转后的新地址,常用于表单提交后跳转结果页。
  5. 304 Not Modified 释义:客户端本地缓存未过期,无需重新下载资源,直接使用缓存(网页缓存核心)。
  6. 305 Use Proxy(已废弃) 释义:必须通过指定代理服务器访问目标资源。
  7. 306 Switch Proxy(作废预留码) 释义:原用于切换代理,现行 HTTP 标准已不再使用。
  8. 307 Temporary Redirect 释义:临时重定向,严格保留原请求方法,POST 请求不会自动转为 GET。
  9. 308 Permanent Redirect 释义:永久重定向,保留原请求方法,适用于 API 接口永久迁移。

四、4xx 客户端错误(请求存在问题,服务器拒绝处理,问题出在访问端)

  1. 400 Bad Request 释义:请求语法错误、参数格式错乱、入参非法。
  2. 401 Unauthorized 释义:未登录或 Token 失效,需要完成身份认证才能访问。
  3. 402 Payment Required 释义:预留付费授权状态码,目前几乎没有场景使用。
  4. 403 Forbidden 释义:已完成登录认证,但账号没有访问该资源的权限。
  5. 404 Not Found 释义:请求的 URL 对应的页面 / 接口资源不存在。
  6. 405 Method Not Allowed 释义:接口不支持当前请求方式,例如接口只允许 POST,却用 GET 访问。
  7. 406 Not Acceptable 释义:服务器无法返回客户端请求头 Accept 指定格式的数据(如客户端只要 JSON,接口只返回 HTML)。
  8. 407 Proxy Authentication Required 释义:需要先完成代理服务器的账号验证。
  9. 408 Request Timeout 释义:客户端长时间未发送完整请求,服务器主动断开连接。
  10. 409 Conflict 释义:资源发生业务冲突,比如重复创建同名账号、修改数据时版本冲突。
  11. 410 Gone 释义:资源被永久删除,不会恢复,区别于临时失效的 404。
  12. 411 Length Required 释义:请求必须携带 Content-Length 请求头标注请求体长度。
  13. 412 Precondition Failed 释义:ETag、If-Match 等前置校验条件不满足,多用来防止并发修改资源。
  14. 413 Payload Too Large 释义:请求体内容超出服务器设置的大小限制(上传文件过大)。
  15. 414 URI Too Long 释义:请求 URL 字符串过长,服务器无法解析。
  16. 415 Unsupported Media Type 释义:提交的数据格式接口不支持,比如表单接口传入 JSON 数据。
  17. 416 Range Not Satisfiable 释义:断点续传请求的字节范围超出了文件总大小。
  18. 417 Expectation Failed 释义:客户端 Expect 请求头提出的要求,服务器无法满足。
  19. 418 I'm a teapot 释义:趣味彩蛋状态码,出自 RFC 恶搞文档,拒绝用茶壶煮咖啡的请求。
  20. 421 Misdirected Request 释义:请求被路由分配到无法处理该请求的后端服务器。
  21. 422 Unprocessable Entity 释义:请求格式合法,但业务逻辑校验失败(参数规则错误,最常用在 REST 接口)。
  22. 423 Locked 释义:目标资源被锁定,暂时无法编辑 / 访问(WebDAV 文件锁定)。
  23. 424 Failed Dependency 释义:当前请求依赖的前置接口执行失败,本次请求无法完成。
  24. 425 Too Early 释义:请求发起过早,存在网络重放攻击风险,服务器拒绝处理。
  25. 426 Upgrade Required 释义:需要客户端升级为更高版本协议才能访问。
  26. 428 Precondition Required 释义:必须携带前置校验请求头,避免多人并发篡改数据。
  27. 429 Too Many Requests 释义:接口限流,客户端请求频次过高,需稍后再试。
  28. 431 Request Header Fields Too Large 释义:请求头的内容体积超限,服务器无法解析。
  29. 451 Unavailable For Legal Reasons 释义:因法律法规、版权、监管要求,禁止访问该资源。

五、5xx 服务端错误(服务器运行异常,无法处理合法请求)

  1. 500 Internal Server Error 释义:服务器未知内部异常,通用服务报错,代码 bug、配置错误都会返回此码。
  2. 501 Not Implemented 释义:服务器未开发实现该请求对应的功能。
  3. 502 Bad Gateway 释义:反向代理 / 网关无法从上游后端服务器获取有效响应。
  4. 503 Service Unavailable 释义:服务不可用,场景:服务器过载、停机维护、应用宕机。
  5. 504 Gateway Timeout 释义:网关等待后端服务器响应超时,没有收到返回数据。
  6. 505 HTTP Version Not Supported 释义:服务器不兼容客户端使用的 HTTP 协议版本。
  7. 506 Variant Also Negotiates 释义:服务器内容协商出现循环异常,无法匹配资源。
  8. 507 Insufficient Storage 释义:服务器存储空间耗尽,无法保存操作产生的数据(WebDAV)。
  9. 508 Loop Detected 释义:检测到请求转发死循环,终止请求。
  10. 510 Not Extended 释义:需要客户端额外扩展请求信息,服务器才能处理。
  11. 511 Network Authentication Required 释义:需要完成网页门户认证,常见于酒店、校园 WiFi 上网前的登录页面。