HTTP 状态码速查

可搜索的 HTTP 状态码列表,涵盖 IANA 注册表中的所有状态码(100–511),含原因短语、定义它的 RFC,以及何时使用的通俗解释。

共 64 个状态码,显示 64 个
  • 100ContinueRFC 9110

    服务器已收到请求头,客户端可以继续发送请求体(对 Expect: 100-continue 的回应)。

  • 101Switching ProtocolsRFC 9110

    服务器同意按 Upgrade 头的要求切换协议,例如切换到 WebSocket。

  • 102ProcessingRFC 2518

    WebDAV:服务器仍在处理耗时请求,暂时没有响应。

  • 103Early HintsRFC 8297

    在最终响应之前发送,让浏览器提前预加载 Link 头中列出的资源。

  • 104Upload Resumption Supporteddraft-ietf-httpbis-resumable-upload临时注册

    可恢复上传草案:服务器支持续传被中断的上传。

  • 200OKRFC 9110

    请求成功。响应体包含所请求的资源或操作结果。

  • 201CreatedRFC 9110

    已创建新资源,其 URL 通常在 Location 头中给出。

  • 202AcceptedRFC 9110

    请求已被接受,但处理尚未完成(异步任务)。

  • 203Non-Authoritative InformationRFC 9110

    成功,但返回内容已被转换型代理修改。

  • 204No ContentRFC 9110

    成功且没有响应体,常见于 DELETE 或保存数据。

  • 205Reset ContentRFC 9110

    成功;客户端应重置发送请求的表单或视图。

  • 206Partial ContentRFC 9110

    按 Range 头的要求只返回资源的一部分(断点续传、视频拖动)。

  • 207Multi-StatusRFC 4918

    WebDAV:响应体中包含多个资源各自的状态码。

  • 208Already ReportedRFC 5842

    WebDAV:绑定的成员已在本响应前面列出过。

  • 226IM UsedRFC 3229

    Delta 编码:响应是对资源应用实例操作后的结果。

  • 300Multiple ChoicesRFC 9110

    有多种表示形式可用,客户端可以自行选择。

  • 301Moved PermanentlyRFC 9110

    资源已永久移动到 Location 中的 URL,搜索引擎会转移排名。客户端可能把 POST 改为 GET。

  • 302FoundRFC 9110

    资源暂时位于其他 URL,今后仍应使用原 URL。客户端可能把 POST 改为 GET。

  • 303See OtherRFC 9110

    请用 GET 访问另一个 URL,常见于表单 POST 之后(Post/Redirect/Get 模式)。

  • 304Not ModifiedRFC 9110

    缓存副本仍然有效(带 If-None-Match / If-Modified-Since 的条件请求),不发送响应体。

  • 305Use ProxyRFC 9110已弃用

    已弃用:资源必须通过代理访问。出于安全原因不再使用。

  • 306(Unused)RFC 9110保留,未使用

    保留;曾在早期草案中使用,现已不再使用。

  • 307Temporary RedirectRFC 9110

    临时重定向,保持原请求方法和请求体(POST 仍为 POST)。

  • 308Permanent RedirectRFC 9110

    永久重定向,保持原请求方法和请求体(POST 仍为 POST)。

  • 400Bad RequestRFC 9110

    请求格式有误,服务器无法处理(语法错误、参数无效、JSON 无效等)。

  • 401UnauthorizedRFC 9110

    需要身份验证或验证失败;响应中包含 WWW-Authenticate 头。

  • 402Payment RequiredRFC 9110

    保留供将来使用;部分 API 用它表示付费或配额问题。

  • 403ForbiddenRFC 9110

    服务器理解请求但拒绝执行,重新登录也无济于事。

  • 404Not FoundRFC 9110

    该 URL 下不存在资源(或服务器不愿透露其存在)。

  • 405Method Not AllowedRFC 9110

    该资源不支持此 HTTP 方法;Allow 头列出了可用方法。

  • 406Not AcceptableRFC 9110

    没有与客户端 Accept 头匹配的表示形式。

  • 407Proxy Authentication RequiredRFC 9110

    与 401 类似,但需要先通过代理的身份验证。

  • 408Request TimeoutRFC 9110

    客户端发送请求耗时过长,服务器关闭了连接。

  • 409ConflictRFC 9110

    请求与资源当前状态冲突(例如编辑冲突、重复数据)。

  • 410GoneRFC 9110

    资源已被永久删除且不会恢复,比 404 更明确。

  • 411Length RequiredRFC 9110

    服务器要求提供 Content-Length 头。

  • 412Precondition FailedRFC 9110

    If-Match 或 If-Unmodified-Since 等前置条件不满足(乐观锁)。

  • 413Content Too LargeRFC 9110

    请求体超过服务器允许的大小(上传大小限制)。

  • 414URI Too LongRFC 9110

    URL 超出服务器可处理的长度。

  • 415Unsupported Media TypeRFC 9110

    不支持请求体的媒体类型(Content-Type)。

  • 416Range Not SatisfiableRFC 9110

    无法满足所请求的 Range,例如起点超出了文件末尾。

  • 417Expectation FailedRFC 9110

    无法满足 Expect 头中的期望。

  • 418(Unused)RFC 9110保留,未使用

    保留未用;因愚人节 RFC 2324 中的“I’m a teapot”而广为人知。

  • 421Misdirected RequestRFC 9110

    请求发送到了无法为该主机提供响应的服务器(例如复用的 HTTP/2 连接)。

  • 422Unprocessable ContentRFC 9110

    语法正确,但内容在语义上无效(校验错误)。

  • 423LockedRFC 4918

    WebDAV:资源已被锁定。

  • 424Failed DependencyRFC 4918

    WebDAV:所依赖的操作失败,导致本请求失败。

  • 425Too EarlyRFC 8470

    服务器拒绝处理可能被重放的请求(TLS 1.3 早期数据)。

  • 426Upgrade RequiredRFC 9110

    客户端必须切换到 Upgrade 头中列出的其他协议。

  • 428Precondition RequiredRFC 6585

    服务器要求使用条件请求(If-Match),以防止更新丢失。

  • 429Too Many RequestsRFC 6585

    一定时间内请求过多(限流);Retry-After 指明何时可以重试。

  • 431Request Header Fields Too LargeRFC 6585

    请求头(或某个请求头,如 Cookie)过大。

  • 451Unavailable For Legal ReasonsRFC 7725

    因法律原因(如法院命令或审查)无法提供该资源。

  • 500Internal Server ErrorRFC 9110

    服务器发生了意外的通用错误。

  • 501Not ImplementedRFC 9110

    服务器不支持完成请求所需的功能(例如未知的请求方法)。

  • 502Bad GatewayRFC 9110

    网关或代理从上游服务器收到了无效响应。

  • 503Service UnavailableRFC 9110

    服务器暂时过载或正在维护,可能会返回 Retry-After。

  • 504Gateway TimeoutRFC 9110

    网关或代理未能及时从上游服务器获得响应。

  • 505HTTP Version Not SupportedRFC 9110

    不支持请求所使用的 HTTP 版本。

  • 506Variant Also NegotiatesRFC 2295

    内容协商配置错误:所选变体本身又在进行协商。

  • 507Insufficient StorageRFC 4918

    WebDAV:服务器存储空间不足,无法完成请求。

  • 508Loop DetectedRFC 5842

    WebDAV:服务器在处理请求时检测到无限循环。

  • 510Not Extended (OBSOLETED)RFC 2774已弃用

    已废弃:请求还需要进一步的扩展(HTTP 扩展框架)。

  • 511Network Authentication RequiredRFC 6585

    客户端需要先认证才能访问网络,例如 Wi-Fi 认证门户。

收录 IANA HTTP 状态码注册表中的全部状态码及其定义的 RFC。原因短语保留英文,因为它们在协议中就是这样传输的。部分产品自定义的未注册状态码(如 499、520–527)未收录。

什么是 HTTP 状态码?

这是一份完整且可搜索的参考,收录了在 IANA 注册的全部 64 个 HTTP 状态码,从 100 Continue 到 511 Network Authentication Required。每个条目都显示官方的原因短语、定义它的 RFC,以及它的含义和服务器何时发送它的简要说明;已弃用和未使用的状态码会被标出。

如何使用 HTTP 状态码

  1. 在搜索框中输入状态码(404)、状态码的一部分(30)或关键词(redirect、timeout)。
  2. 按类别筛选:1xx 信息、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误。
  3. 查看每个状态码的原因短语、RFC 和说明。

示例

输入
418
输出
418 (Unused) · RFC 9110 · reserved and unused; known from the "I’m a teapot" April Fools’ RFC 2324.

何时使用 HTTP 状态码

适合在调试 API、阅读服务器日志,或为自己的接口选择返回哪个状态码时使用。特定产品使用的非官方状态码(Nginx 499、Cloudflare 520–527、IIS 440)不在注册表中,因此没有列出。

HTTP 状态码 的工作原理

该列表对应 IANA HTTP 状态码注册表,自 2022 年起大部分由 RFC 9110(HTTP 语义)定义,另有 WebDAV(RFC 4918)和 RFC 6585 等扩展。搜索会匹配状态码前缀、英文原因短语以及当前语言的说明,全部在本地完成。

常见用例

  • 为 API 错误在 401 与 403、400 与 422 之间做选择。
  • 查询日志中出现的 425 Too Early 或 421 Misdirected Request。
  • 向客户解释为什么对已删除的页面,410 Gone 比 404 更合适。
  • 当重定向必须保留 POST 方法时,选择 307 还是 308。

常见问题

401 和 403 有什么区别?

401 表示未通过身份验证(或凭据无效),并附带 WWW-Authenticate。403 表示服务器知道你是谁,但你没有权限。

418 I'm a teapot 是真正的状态码吗?

它在注册表中是保留的,并被 RFC 9110 列为未使用,因为很多库根据 1998 年的愚人节 RFC 实现了它。

为什么 422 现在叫 Unprocessable Content?

RFC 9110 把它从 WebDAV 移到了核心 HTTP,并把名称从 Unprocessable Entity 改了过来。

探索更多分类