常见的HTTP响应状态码

127 阅读11分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

响应状态代码

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

  1. 信息响应 (–100``199)
  2. 成功的响应 (–200``299)
  3. 重定向消息 (–300``399)
  4. 客户端错误响应 (–400``499)
  5. 服务器错误响应 (–500``599)

以下状态代码由 RFC 2616 的第 10 节](datatracker.ietf.org/doc/html/rf… RFC 7231](datatracker.ietf.org/doc/html/rf…) 中找到更新的规范。

注意: 如果收到的响应不在此列表中,则该响应是非标准响应,可能是服务器软件自定义的。

信息响应

  • 100 Continue

    此临时响应指示客户端应继续请求,或者如果请求已完成,则忽略响应。

  • 101 Switching Protocols

    发送此代码是为了响应来自客户端的升级请求标头,并指示服务器要切换到的协议。

  • 102 处理 (WebDAV)

    此代码指示服务器已接收并正在处理请求,但尚无可用的响应。

  • 103 Early Hints

    此状态代码主要用于 Link 标头,让用户代理在服务器准备响应时开始预加载资源。

成功响应

  • 200 OK

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

    • GET:资源已在消息正文中提取并传输。
    • HEAD:表示标头包含在响应中,不带任何消息正文。
    • PUT或 :描述操作结果的资源在消息正文中传输。POST
    • 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 多状态 (WebDAV)

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

  • 208 个已被报告 (WebDAV)

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

  • 226 使用 IM(HTTP 增量编码](datatracker.ietf.org/doc/html/rf…))

    服务器已满足对资源的请求,响应表示应用于当前实例的一个或多个实例操作的结果。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 unused

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

  • 307 Temporary Redirect

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

  • 308 Permanent Redirect

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

客户端错误响应

  • 400 Bad Request

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

  • 401 Unauthorized

    尽管 HTTP 标准指定“未经授权”,但从语义上讲,此响应意味着“未经身份验证”。也就是说,客户端必须对自身进行身份验证才能获得请求的响应。

  • 402 Payment Required 实验的

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

  • 403 Forbidden

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

  • 404 Not Found

    服务器找不到请求的资源。在浏览器中,这意味着无法识别 URL。在 API 中,这也可能意味着终结点有效,但资源本身不存在。服务器还可以发送此响应,而不是从未经授权的客户端隐藏资源的存在。此响应代码可能是最广为人知的,因为它在 Web 上频繁出现。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 Payload Too Large

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

  • 414 URI Too Long

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

  • 415 Unsupported Media Type

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

  • 416 Range Not Satisfiable

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

  • 417 Expectation Failed

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

  • 418 I'm a teapot

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

  • 421 Misdirected Request

    请求被定向到无法生成响应的服务器。这可以由未配置为对请求 URI 中包含的方案和颁发机构的组合生成响应的服务器发送。

  • 422 不可处理的实体 (WebDAV)

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

  • 423 锁定 (网络DAV)

    正在访问的资源已锁定。

  • 424 失败的依赖关系 (WebDAV)

    由于上一个请求失败,请求失败。

  • 425 Too Early 实验的

    指示服务器不愿意冒险处理可能重播的请求。

  • 426 Upgrade Required

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

  • 428 Precondition Required

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

  • 429 Too Many Requests

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

  • 431 Request Header Fields Too Large

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

  • 451 Unavailable For Legal Reasons

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

服务器错误响应

  • 500 Internal Server Error

    服务器遇到了不知道如何处理的情况。

  • 501 Not Implemented

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

  • 502 Bad Gateway

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

  • 503 Service Unavailable

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

  • 504 Gateway Timeout

    当服务器充当网关并且无法及时获得响应时,将给出此错误响应。

  • 505 HTTP Version Not Supported

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

  • 506 Variant Also Negotiates

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

  • 507 存储不足 (WebDAV)

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

  • 检测到 508 个环路(WebDAV)

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

  • 510 Not Extended

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

  • 511 Network Authentication Required

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