HTTP 响应状态码

HTTP 响应状态码指示特定 HTTP 请求是否已成功完成。响应被分为五类

  1. 信息性响应 (100199)
  2. 成功响应 (200299)
  3. 重定向消息 (300399)
  4. 客户端错误响应 (400499)
  5. 服务器错误响应 (500599)

下面列出的状态码由 RFC 9110 定义。

注意:如果你收到一个不在 这个列表 中的响应,它是非标准响应,可能是服务器软件自定义的。

信息响应

100 Continue

此中间响应表明客户端应继续请求或忽略响应(如果请求已完成)。

101 Switching Protocols

此代码是作为对客户端的 Upgrade 请求标头的响应发送的,并指示服务器正在切换到的协议。

102 Processing (WebDAV)

此代码表明服务器已收到并正在处理请求,但响应尚未准备好。

103 Early Hints

此状态代码主要用于 Link 标头,让用户代理在服务器准备响应时开始 预加载 资源,或 预连接 到页面需要资源的来源。

成功响应

200 OK

请求成功。 "成功" 的结果含义取决于 HTTP 方法

  • GET:已获取资源并在消息主体中传输。
  • HEAD:表示标头包含在响应中,不包含任何消息主体。
  • PUTPOST:描述操作结果的资源在消息主体中传输。
  • TRACE:消息主体包含服务器收到的请求消息。
201 Created

请求成功,并因此创建了一个新资源。这通常是 POST 请求或某些 PUT 请求后发送的响应。

202 Accepted

请求已收到,但尚未处理。它是非承诺性的,因为 HTTP 中没有办法稍后发送异步响应来指示请求的结果。它适用于另一个进程或服务器处理请求,或用于批处理的情况。

203 Non-Authoritative Information

此响应代码表示返回的元数据与源服务器提供的元数据不完全相同,而是从本地或第三方副本收集的。这主要用于镜像或其他资源的备份。除了这种特殊情况之外,200 OK 响应优先于此状态。

204 No Content

此请求没有内容要发送,但标头可能很有用。用户代理可以使用新标头更新其对此资源的缓存标头。

205 Reset Content

告诉用户代理重置发送此请求的文档。

206 Partial Content

此响应代码用于客户端发送 Range 标头以请求资源的特定部分时。

207 Multi-Status (WebDAV)

传达有关多个资源的信息,适用于可能有多个状态代码合适的情况。

208 Already Reported (WebDAV)

<dav:propstat> 响应元素内部使用,以避免重复枚举多个绑定到同一集合的内部成员。

226 IM Used (HTTP Delta 编码)

服务器已完成对资源的 GET 请求,响应是应用于当前实例的一个或多个实例操作结果的表示。

重定向消息

300 Multiple Choices

该请求有多个可能的响应。用户代理或用户应选择其中一个。(没有标准化的方式来选择其中一个响应,但建议使用指向可能性的 HTML 链接,以便用户可以选择。)

301 Moved Permanently

请求资源的 URL 已永久更改。新 URL 在响应中给出。

302 Found

此响应代码表示请求资源的 URI 已暂时更改。将来可能还会对 URI 进行进一步的更改。因此,客户端在将来的请求中应使用相同的 URI。

303 See Other

服务器发送此响应以指示客户端使用 GET 请求从另一个 URI 获取请求的资源。

304 Not Modified

这用于缓存目的。它告诉客户端响应没有修改,因此客户端可以继续使用响应的相同缓存版本。

305 Use Proxy 已弃用

在 HTTP 规范的先前版本中定义,以指示请求的响应必须通过代理访问。由于对代理带内配置的安全问题,它已弃用。

306 未使用

此响应代码不再使用;它只是保留的。它在 HTTP/1.1 规范的先前版本中使用过。

307 Temporary Redirect

服务器发送此响应以指示客户端使用与先前请求中使用的相同方法从另一个 URI 获取请求的资源。这与 302 Found HTTP 响应代码具有相同的语义,区别在于用户代理不能更改使用的 HTTP 方法:如果第一个请求中使用了 POST,则第二个请求中必须使用 POST

308 Permanent Redirect

这意味着资源现在永久位于另一个 URI,由 Location: HTTP 响应标头指定。这与 301 Moved Permanently HTTP 响应代码具有相同的语义,区别在于用户代理不能更改使用的 HTTP 方法:如果第一个请求中使用了 POST,则第二个请求中必须使用 POST

客户端错误响应

400 Bad Request

由于某些被认为是客户端错误的原因(例如,请求语法格式错误、请求消息框架无效或请求路由欺骗),服务器无法或不会处理请求。

401 Unauthorized

虽然 HTTP 标准指定 "未授权",但在语义上,此响应表示 "未经身份验证"。也就是说,客户端必须进行身份验证才能获取请求的响应。

402 Payment Required 实验性功能

此响应代码保留供将来使用。创建此代码的最初目的是用于数字支付系统,但是此状态代码很少使用,并且没有标准约定。

403 Forbidden

客户端没有访问内容的权限;也就是说,它未经授权,因此服务器拒绝提供请求的资源。与 401 Unauthorized 不同,服务器知道客户端的身份。

404 Not Found

服务器找不到请求的资源。在浏览器中,这意味着 URL 未被识别。在 API 中,这也可能意味着端点有效,但资源本身不存在。服务器也可能会发送此响应而不是 403 Forbidden,以隐藏资源的存在,使其无法被未经授权的客户端访问。此响应代码可能由于其在网络上的频繁出现而最广为人知。

405 Method Not Allowed

服务器知道请求方法,但目标资源不支持该方法。例如,API 可能不允许调用 DELETE 来删除资源。

406 Not Acceptable

当 Web 服务器在执行 服务器驱动的内容协商 后,没有找到符合用户代理给出的条件的任何内容时,就会发送此响应。

407 Proxy Authentication Required

这类似于 401 Unauthorized,但需要通过代理进行身份验证。

408 Request Timeout

此响应由某些服务器在空闲连接上发送,即使没有客户端的先前请求。这意味着服务器希望关闭此未使用的连接。自某些浏览器(如 Chrome、Firefox 27+ 或 IE9)使用 HTTP 预连接机制来加快浏览速度以来,此响应使用得更多。另请注意,某些服务器会直接关闭连接,而不会发送此消息。

409 Conflict

当请求与服务器的当前状态冲突时,会发送此响应。

410 Gone

当请求的内容已从服务器永久删除且没有转发地址时,会发送此响应。客户端应删除其缓存和指向该资源的链接。HTTP 规范旨在将此状态代码用于 "有限时间、促销服务"。API 不应被迫使用此状态代码来指示已删除的资源。

411 Length Required

服务器拒绝请求,因为未定义 Content-Length 标头字段,而服务器需要它。

412 Precondition Failed

客户端在其头文件中指示了服务器不满足的先决条件。

413 请求实体过大

请求实体大于服务器定义的限制。服务器可能会关闭连接或返回一个Retry-After头字段。

414 URI Too Long

客户端请求的 URI 长于服务器愿意解释的长度。

415 Unsupported Media Type

服务器不支持请求数据的媒体格式,因此服务器拒绝了请求。

416 Range Not Satisfiable

请求中Range头字段指定的范围无法满足。范围可能超出了目标 URI 数据的大小。

417 Expectation Failed

此响应代码表示服务器无法满足Expect请求头字段指示的预期。

418 I'm a teapot

服务器拒绝用茶壶冲泡咖啡的尝试。

421 Misdirected Request

请求指向一个无法生成响应的服务器。这可能是由未配置为生成针对请求 URI 中包含的方案和授权组合的响应的服务器发送的。

422 不可处理的实体 (WebDAV)

请求格式正确,但由于语义错误无法执行。

423 已锁定 (WebDAV)

正在访问的资源已被锁定。

424 依赖失败 (WebDAV)

请求由于先前请求失败而失败。

425 太早 实验性

表示服务器不愿意冒险处理可能被重放的请求。

426 Upgrade Required

服务器拒绝使用当前协议执行请求,但可能愿意在客户端升级到其他协议后执行。服务器在 426 响应中发送一个Upgrade头来指示所需的协议。

428 Precondition Required

原始服务器要求请求具有条件性。此响应旨在防止“丢失更新”问题,其中客户端GET资源状态,对其进行修改并将其PUT回服务器,而与此同时,第三方已在服务器上修改了状态,导致冲突。

429 Too Many Requests

用户在给定时间内发送了太多请求(“速率限制”)。

431 Request Header Fields Too Large

服务器不愿处理请求,因为其头字段太大。在减小请求头字段的大小后,可以重新提交请求。

用户代理请求的资源无法合法提供,例如政府审查的网页。

服务器错误响应

500 Internal Server Error

服务器遇到了无法处理的情况。

501 Not Implemented

服务器不支持请求方法,无法处理。服务器唯一需要支持的方法(因此不能返回此代码)是GETHEAD

502 Bad Gateway

此错误响应表示服务器在充当网关获取处理请求所需的响应时,获得了无效的响应。

503 Service Unavailable

服务器尚未准备好处理请求。常见原因是服务器因维护而停机或超载。请注意,应与此响应一起发送一个用户友好页面来解释问题。此响应应用于临时情况,并且Retry-After HTTP 头应该(如果可能)包含服务恢复前的估计时间。网站管理员还必须注意与此响应一起发送的与缓存相关的头,因为这些临时条件响应通常不应该被缓存。

504 Gateway Timeout

当服务器充当网关并且无法及时获取响应时,会返回此错误响应。

505 HTTP Version Not Supported

请求中使用的 HTTP 版本不受服务器支持。

506 Variant Also Negotiates

服务器存在内部配置错误:选定的变体资源配置为自行进行透明内容协商,因此不是协商过程中的正确端点。

507 存储空间不足 (WebDAV)

由于服务器无法存储成功完成请求所需的表示,因此无法对资源执行该方法。

508 循环检测 (WebDAV)

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

510 Not Extended

服务器需要对请求进行进一步扩展才能完成请求。

511 Network Authentication Required

表示客户端需要进行身份验证才能获得网络访问权限。

浏览器兼容性

BCD 表仅在启用

另请参阅