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

当客户端请求了资源的某一部分或某些部分时,此响应代码用于响应 范围请求

207 Multi-Status (WebDAV)

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

208 Already Reported (WebDAV)

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

226 IM Used (HTTP Delta 编码)

服务器已履行了针对资源的 GET 请求,并且响应是对当前实例应用了一个或多个实例操作结果的表示。

重定向消息

300 Multiple Choices

代理驱动的内容协商 中,请求有多个可能的响应,用户代理或用户应该选择其中一个。客户端没有标准化的方法来自动选择其中一个响应,因此很少使用此方法。

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 方法:如果第一个请求使用了 POST,则重定向请求中必须使用 POST

308 Permanent Redirect

这意味着资源现在永久位于另一个 URI,由 Location 响应头部指定。这与 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,或者完全不允许 TRACE 方法。

406 Not Acceptable

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

407 Proxy Authentication Required

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

408 Request Timeout

此响应由某些服务器在空闲连接上发送,即使客户端之前没有任何请求。这意味着服务器希望关闭此未使用的连接。由于一些浏览器使用 HTTP 预连接机制来加速浏览,因此此响应的使用频率更高。一些服务器可能会在不发送此消息的情况下关闭连接。

409 Conflict

当请求与服务器的当前状态冲突时,会发送此响应。在 WebDAV 远程 Web 创作中,409 响应是发送给客户端的错误,以便用户可以解决冲突并重新提交请求。

410 Gone

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

411 Length Required

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

412 Precondition Failed

条件请求 中,客户端在其头部中指出了服务器不满足的先决条件。

413 Content Too Large

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

414 URI Too Long

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

415 Unsupported Media Type

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

416 Range Not Satisfiable

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

417 Expectation Failed

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

418 I'm a teapot

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

421 Misdirected Request

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

422 Unprocessable Content (WebDAV)

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

423 Locked (WebDAV)

正在访问的资源被锁定。

424 Failed Dependency (WebDAV)

请求失败是由于先前的请求失败。

425 Too Early 实验性

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

426 Upgrade Required

服务器拒绝使用当前协议执行请求,但客户端升级到不同协议后可能愿意这样做。服务器在 426 响应中发送 Upgrade 头部以指示所需的协议。

428 Precondition Required

源服务器要求请求是 条件性的。此响应旨在防止“丢失更新”问题,即客户端 GET 资源的 상태,修改它并将其 PUT 回服务器,而同时第三方已修改服务器上的状态,导致冲突。

429 Too Many Requests

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

431 Request Header Fields Too Large

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

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

服务器错误响应

500 Internal Server Error

服务器遇到了无法处理的情况。此错误是通用错误,表示服务器无法找到更合适的 5XX 状态码进行响应。

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 Insufficient Storage (WebDAV)

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

508 Loop Detected (WebDAV)

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

510 Not Extended

客户端请求声明了一个应与处理请求一起使用的 HTTP 扩展 (RFC 2774),但不支持该扩展。

511 Network Authentication Required

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

浏览器兼容性

另见