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​

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

浏览器兼容性

待补充

相关推荐
吴声子夜歌13 小时前
Nginx应用与运维——Nginx HTTP模块详解(动态赋值功能模块)
运维·nginx·http
傲世仙尊18 小时前
HTTP请求与应答-URL全网唯一文件路径报文结构与短连接
网络·网络协议·http
傲世仙尊2 天前
HTTP起步-URL域名解析与协议的本质
网络·网络协议·http
ControlRookie2 天前
第27篇_综合排障|从现象反查状态、错误码、指标和连接快照
http·codesys·plc通信
天天喝旺仔2 天前
gRPC 底层原理:HTTP/2 多路复用、Protobuf 序列化与四种流模式
分布式·http·微服务·rpc
liangshanbo12153 天前
面试题:页面需要发起大量 Ajax / HTTP 请求时,如何优化请求性能?
前端·http·ajax
零域码客3 天前
零基础Python爬虫入门:从HTTP协议到 requests + BeautifulSoup 实战
爬虫·python·http
被摘下的星星3 天前
HTTP 状态码 和 网络端口号
网络·网络协议·http
zxanz13 天前
https 的基本原理是什么样的?
网络协议·http·https
码匠许师傅3 天前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http