HTTP 响应状态代码

HTTP 响应状态代码

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

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

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

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

信息响应

100 Continue

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

101 Switching Protocols

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

102 处理​ (WebDAV)

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

103 Early Hints

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

成功响应

200 OK

请求成功。"success"的结果含义取决于 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](dav:propstat)

使用 226 IM​(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 unused

不再使用此响应代码;它只是保留的。它用于 HTTP/1.1 规范的早期版本。

307 Temporary Redirect

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

308 Permanent Redirect

这意味着资源现在永久位于另一个 URI 中,由 HTTP 响应标头指定。 这与 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 中,这也可能意味着终结点有效,但资源本身不存在。 服务器也可以发送此响应,而不是向未经授权的客户端隐藏资源的存在。 由于此响应代码在网络上频繁出现,因此可能是最广为人知的。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 锁定​ (WebDAV)

正在访问的资源已锁定。

424 失败的依赖项​ (WebDAV)

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

425 Too Early

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

426 Upgrade Required

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

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

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

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

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

浏览器兼容性

待补充

相关推荐
阑梦清川8 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
阿尔帕兹8 小时前
构建 HTTP 服务端与 Docker 镜像:从开发到测试
网络协议·http·docker
follycat11 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
earthzhang202112 小时前
《深入浅出HTTPS》读书笔记(5):随机数
网络协议·http·https
xiaoxiongip66612 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
CXDNW12 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
城南vision14 小时前
计算机网络——HTTP篇
网络协议·计算机网络·http
‍。。。15 小时前
使用Rust实现http/https正向代理
http·https·rust
田三番1 天前
使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
单片机·物联网·http·https·嵌入式·esp32·sntp
dulu~dulu1 天前
查缺补漏----用户上网过程(HTTP,DNS与ARP)
网络·网络协议·http