HTTP 状态码列表

本文详细介绍了HTTP响应状态代码的分类和具体含义,包括1xx信息响应、2xx成功、3xx重定向、4xx客户端错误和5xx服务器错误。每个类别下的状态码都有其特定用途,例如100继续、200好、404未找到和500内部服务器错误。此外,还提到了一些非标准的和特定服务器扩展的状态码。
摘要由CSDN通过智能技术生成

​ 这是超文本传输协议(HTTP) 响应状态代码的列表。状态码由服务器发出,以响应客户端对服务器的请求。它包括来自 IETF Request for Comments(RFC) 的代码、其他规范以及在 HTTP 的一些常见应用程序中使用的一些附加代码。

状态代码的第一位数字指定了五种标准响应类别之一。

显示的消息短语是典型的,但可以提供任何人类可读的替代方案。除非另有说明,否则状态代码是 HTTP/1.1 标准 (RFC 7231) 的一部分。

所有 HTTP 响应状态代码都分为五个类或类别。状态码的第一个数字定义了响应的类别,而最后两个数字没有任何分类或分类作用。该标准定义了五个等级:

  • 1xx 信息响应——请求已收到,继续处理
  • 2xx 成功——请求被成功接收、理解和接受
  • 3xx 重定向- 需要采取进一步的措施才能完成请求
  • 4xx 客户端错误– 请求包含错误语法或无法完成
  • 5xx 服务器错误– 服务器未能满足明显有效的请求

可参考:org.springframework.http.HttpStatus状态码,以及描述

1xx 信息响应

​ 信息响应表明请求已被接收并理解。它是在请求处理继续进行时临时发布的。它提醒客户端等待最终响应。该消息仅由状态行和可选的头字段组成,并以空行结束。由于 HTTP/1.0 标准没有定义任何 1xx 状态代码,服务器不得向符合 HTTP/1.0 的客户端发送 1xx 响应,除非在实验条件下。

  • 100 继续

    服务器已收到请求标头,客户端应继续发送请求正文(在需要发送正文的请求的情况下;例如,POST请求)。在请求因不适当的标头而被拒绝后向服务器发送大型请求正文将是低效的。要让服务器检查请求的标头,客户端必须Expect: 100-continue在其初始请求中作为标头发送,并100 Continue在发送正文之前接收状态代码作为响应。如果客户端收到诸如 403(禁止)或 405(不允许的方法)之类的错误代码,则它不应发送请求的正文。响应417 Expectation Failed表明该请求应在没有Expect标头,因为它表明服务器不支持预期(例如,HTTP/1.0 服务器就是这种情况)。

  • 101 交换协议

    请求者已要求服务器切换协议并且服务器已同意这样做。

  • 102 处理(RFC 2518)

    一个WebDAV请求可能包含很多涉及文件操作的子请求,需要很长时间才能完成请求。此代码表示服务器已收到并正在处理请求,但还没有可用的响应。这可以防止客户端超时并假设请求丢失。

  • 103 早期提示 (RFC 8297)

    用于在最终 HTTP 消息之前返回一些响应标头。

2xx 成功

此类状态代码表示客户端请求的操作已被接收、理解和接受。

  • 200 好

    成功 HTTP 请求的标准响应。实际响应将取决于使用的请求方法。在 GET 请求中,响应将包含对应于所请求资源的实体。在 POST 请求中,响应将包含描述或包含操作结果的实体。

  • 201 已创建

    请求已完成,从而创建了新资源。

  • 202 接受

    请求已被接受处理,但处理尚未完成。该请求最终可能会或可能不会被执行,并且在处理发生时可能会被拒绝。

  • 203 非权威信息(HTTP/1.1 起)

    服务器是一个转换代理(例如Web 加速器,它从其源接收到 200 OK,但正在返回源响应的修改版本。

  • 204 无内容

    服务器成功处理了请求,并且没有返回任何内容。

  • 205 重置内容

    服务器成功处理了请求,要求请求者重置其文档视图,并且不返回任何内容。

  • 206 部分内容 (RFC 7233)

    由于客户端发送的范围标头,服务器仅提供部分资源(字节服务)。HTTP 客户端使用 range 标头来启用中断下载的恢复,或将下载拆分为多个同时流。

  • 207 多状态(WebDAV;RFC 4918)

    接下来的消息正文默认是XML消息,并且可以包含许多单独的响应代码,具体取决于发出的子请求的数量。

  • 208 已报告(WebDAV;RFC 5842)

    DAV 绑定的成员已在(多状态)响应的前面部分中枚举,并且不会再次包含在内。

  • 226 IM 使用 (RFC 3229)

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

3xx 重定向

此类状态码表明客户端必须采取额外的行动来完成请求。许多这些状态代码用于URL 重定向。

只有当第二个请求中使用的方法是 GET 或 HEAD 时,用户代理才可以在没有用户交互的情况下执行附加操作。用户代理可以自动重定向请求。用户代理应该检测并干预以防止循环重定向。

  • 300多项选择

    指示客户端可以从中选择的资源的多个选项(通过代理驱动的内容协商)。例如,此代码可用于呈现多种视频格式选项,列出具有不同文件扩展名的文件,或建议词义消歧。

  • 301 永久搬家

    这个和所有未来的请求都应该被定向到给定的URI。

  • 302 找到(以前是“暂时移动”

    告诉客户端查看(浏览到)另一个 URL。HTTP/1.0 规范 (RFC 1945) 要求客户端使用相同的方法执行临时重定向(最初的描述短语是“临时移动”),21]但流行的浏览器通过将方法更改为 GET 来实现 302 重定向。因此,HTTP/1.1 增加了状态码 303 和 307 来区分这两种行为。

  • 303 见其他(自 HTTP/1.1 起)

    可以使用 GET 方法在另一个URI下找到对请求的响应。当收到响应 POST(或 PUT/DELETE)时,客户端应假定服务器已收到数据,并应向给定 URI 发出新的 GET 请求。

  • 304 未修改 (RFC 7232)

    表示资源自请求标头If-Modified-Since 或 If-None-Match指定的版本以来未被修改。在这种情况下,不需要重新传输资源,因为客户端仍然有一个先前下载的副本。

  • 305 使用代理(从 HTTP/1.1 开始)

    请求的资源只能通过代理获得,其地址在响应中提供。出于安全原因,许多 HTTP 客户端(例如Mozilla Firefox和Internet Explorer)不遵守此状态代码。

  • 306切换代理

    不再使用。原意是“后续请求应该使用指定的代理”。

  • 307 临时重定向(从 HTTP/1.1 开始)

    在这种情况下,应该使用另一个 URI 重复请求;但是,未来的请求仍应使用原始 URI。与历史上的 302 实现方式不同的是,在重新发出原始请求时,不允许更改请求方法。例如,应该使用另一个 POST 请求重复一个 POST 请求。

  • 308 永久重定向 (RFC 7538)

    这个和所有未来的请求都应该被定向到给定的URI)。308 与 301 的行为平行,但不允许 HTTP 方法改变。因此,例如,将表单提交到永久重定向的资源可能会顺利进行。

4xx 客户端错误

此类状态代码适用于错误似乎是由客户端引起的情况。除了响应 HEAD 请求时,服务器应该包含一个实体,其中包含对错误情况的解释,以及它是临时情况还是永久情况。这些状态码适用于任何请求方法。用户代理应该向用户显示任何包含的实体。

  • 400 错误请求

    由于明显的客户端错误(例如,格式错误的请求语法、大小太大、无效的请求消息帧或欺骗性请求路由),服务器不能或不会处理请求。

  • 401 未经授权 (RFC 7235)

    类似于 403 Forbidden,但专门用于需要身份验证但已失败或尚未提供身份验证时使用。响应必须包含一个 WWW-Authenticate 标头字段,该字段包含适用于所请求资源的质询。请参阅基本访问身份验证和摘要访问身份验证。31]401 在语义上意味着“未经授权”,32]用户没有目标资源的有效认证凭证。

    注意:当某个IP 地址被禁止访问网站(通常是网站域)并且该特定地址被拒绝访问网站时,某些网站会错误地发出 HTTP 401 。需要引用

  • 402 需要付款

    保留供将来使用。最初的意图是该代码可能被用作某种形式的数字现金或小额支付方案的一部分,例如GNU Taler 33]提出的,但尚未发生,并且该代码并未广泛使用。如果特定开发人员超出了每日请求限制,Google Developers API 会使用此状态。34] 如果账户没有足够的资金来启动通话,Sipgate 会使用此代码。35]Shopify在商店未支付费用并暂时禁用时使用此代码。36] 条纹)将此代码用于参数正确的失败付款,例如阻止欺诈性付款。

  • 403 禁止

    该请求包含有效数据并被服务器理解,但服务器拒绝操作。这可能是由于用户没有资源的必要权限或需要某种帐户,或尝试了禁止的操作(例如,创建仅允许一个重复记录)。如果请求通过回答 WWW-Authenticate 标头字段质询提供了身份验证,但服务器不接受该身份验证,则通常也使用此代码。该请求不应重复。

  • 404 未找到

    无法找到请求的资源,但将来可能可用。客户的后续请求是允许的。

  • 405 方法不允许

    请求的资源不支持请求方法;例如,表单上的 GET 请求需要通过POST)呈现数据,或只读资源上的 PUT 请求。

  • 406 不可接受

    根据请求中发送的 Accept 标头,请求的资源只能生成不可接受的内容。38]见内容协商。

  • 需要 407 代理身份验证 (RFC 7235)

    客户端必须首先通过代理验证自己。

  • 408 请求超时

    服务器等待请求超时。根据 HTTP 规范:“客户端在服务器准备等待的时间内没有产生请求。客户端可以在以后的任何时间重复请求而无需修改。”

  • 409 冲突

    表示由于资源当前状态存在冲突而无法处理请求,例如多个同时更新之间的编辑冲突。

  • 410 走了

    表示请求的资源以前在使用中,但不再可用,也不会再次可用。当有意删除资源并清除资源时,应使用此选项。收到 410 状态码后,客户端不应再请求资源。搜索引擎等客户端应从其索引中删除资源。41]大多数用例不需要客户端和搜索引擎清除资源,而是可以使用“404 Not Found”。

  • 411 长度要求

    该请求未指定其内容的长度,这是所请求资源所要求的。

  • 412 前置条件失败 (RFC 7232)

    服务器不满足请求者对请求标头字段设置的先决条件之一。

  • 413 有效负载太大 (RFC 7231)

    请求大于服务器愿意或能够处理的。以前称为“请求实体太大”。

  • 414 URI 太长 (RFC 7231)

    提供的URI太长,服务器无法处理。通常是因为太多数据被编码为 GET 请求的查询字符串,在这种情况下应该将其转换为 POST 请求。45]以前称为“Request-URI Too Long”。

  • 415 不支持的媒体类型 (RFC 7231)

    请求实体具有服务器或资源不支持的媒体类型。例如,客户端将图像上传为image/svg+xml,但服务器要求图像使用不同的格式。

  • 416 范围不可满足 (RFC 7233)

    客户端已请求文件的一部分(字节服务),但服务器无法提供该部分。例如,如果客户端要求文件的一部分超出文件末尾。48]以前称为“请求的范围不可满足”。

  • 417 期望失败

    服务器无法满足 Expect 请求头字段的要求。

  • 418 我是一个茶壶(RFC 2324、RFC 7168)

    此代码在 1998 年被定义为传统的IETF 愚人节笑话之一,在 RFC 2324,超文本咖啡壶控制协议中,预计不会由实际的 HTTP 服务器实现。RFC 指定此代码应由请求冲泡咖啡的茶壶返回。这种 HTTP 状态在某些网站中被用作复活节彩蛋),例如Google.com 的“我是茶壶”复活节彩蛋。52] 53] 54]

  • 421 误导请求 (RFC 7540)

    该请求被定向到无法产生响应的服务器(例如因为连接重用)。

  • 422 无法处理的实体(WebDAV;RFC 4918)

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

  • 423 锁定(WebDAV;RFC 4918)

    正在访问的资源被锁定。

  • 424 失败的依赖(WebDAV;RFC 4918)

    该请求失败,因为它依赖于另一个请求并且该请求失败(例如,PROPPATCH)。

  • 425 太早 (RFC 8470)

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

  • 426 需要升级

    客户端应切换到升级标头字段中给出的不同协议,例如TLS/1.3 。

  • 需要 428 前提条件 (RFC 6585)

    源服务器要求请求是有条件的。旨在防止“丢失更新”问题,其中客户端获取资源的状态,修改它,然后将其放回服务器,同时第三方修改了服务器上的状态,导致冲突。

  • 429 请求过多 (RFC 6585)

    用户在给定时间内发送了太多请求。旨在与速率限制方案一起使用。

  • 431 请求标头字段太大 (RFC 6585)

    服务器不愿意处理请求,因为单个标头字段或所有标头字段集体太大。

  • 451 由于法律原因不可用(RFC 7725)

    服务器操作员已收到拒绝访问资源或包括所请求资源的一组资源的合法要求。选择代码 451 作为对小说Fahrenheit 451的引用(参见 RFC 中的致谢)。

5xx 服务器错误

服务器未能满足请求。

以数字“5”开头的响应状态代码表示服务器知道它遇到错误或无法执行请求的情况。除了响应 HEAD 请求时,服务器应该包含一个实体,其中包含对错误情况的解释,并指出它是暂时的还是永久的。同样,用户代理应该向用户显示任何包含的实体。这些响应代码适用于任何请求方法

  • 500内部服务器错误

    通用错误消息,在遇到意外情况且没有更具体的消息适用时给出。

  • 501 未实施

    服务器要么无法识别请求方法,要么无法完成请求。通常这意味着未来的可用性(例如,Web 服务 API 的新特性)。

  • 502错误的网关

    服务器充当网关或代理,并从上游服务器接收到无效响应。

  • 503服务不可用

    服务器无法处理请求(因为它过载或停机维护)。通常,这是一种临时状态。

  • 504网关超时

    服务器充当网关或代理,没有收到来自上游服务器的及时响应。

  • 505 不支持 HTTP 版本

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

  • 506 变体也协商 (RFC 2295)

    请求的透明内容协商导致循环引用。

  • 507 存储空间不足(WebDAV;RFC 4918)

    服务器无法存储完成请求所需的表示。

  • 检测到 508 循环(WebDAV;RFC 5842)

    服务器在处理请求时检测到无限循环(发送而不是208 Already Reported)。

  • 510 未扩展 (RFC 2774)

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

  • 需要 511 网络身份验证 (RFC 6585)

    客户端需要进行身份验证才能获得网络访问权限。旨在通过拦截用于控制网络访问的代理来使用(例如,强制门户”用于在通过Wi-Fi 热点)授予完全互联网访问权限之前要求同意服务条款)。

非官方代码

以下代码未由任何标准指定。

  • 419 页面已过期(Laravel 框架)

    当 CSRF 令牌丢失或过期时由 Laravel 框架使用。

  • 420方法失败(Spring框架)

    当方法失败时,Spring 框架使用的不推荐使用的响应

  • 第420章 增强你的冷静(推特)

    当客户端受到速率限制时,由 Twitter 搜索和趋势 API 的版本 1 返回;1.1 及更高版本使用429 Too Many Requests响应代码。 “增强你的冷静”这句话来自1993 年的电影Demolition Man,它与这个数字的关联很可能是指大麻)。

  • 430 请求标头字段太大(Shopify)

    当在特定时间范围内请求太多 URL 时,由ArcGIS for Server使用,而不是429 Too Many Requests响应代码。

  • 450 被 Windows 家长控制阻止 (Microsoft)

    当 Windows 家长控制打开并阻止访问所请求的网页时指示的 Microsoft 扩展代码。

  • 498 令牌无效 (Esri)

    由ArcGIS for Server返回。代码 498 表示过期或无效的令牌。

  • 499 需要令牌 (Esri)

    由ArcGIS for Server返回。代码 499 表示需要令牌但未提交。

  • 509 超出带宽限制(Apache Web 服务器/cPanel)

    服务器已超出服务器管理员指定的带宽;这通常被共享托管服务提供商用来限制客户的带宽。

  • 529 站点超载

    Qualys在SSLLabs服务器测试 API 中使用它来表示站点无法处理请求。

  • 530 站点被冻结

    万神殿网络平台使用它来表示由于不活动而被冻结的站点。

  • 598(非正式约定)网络读取超时错误

    一些 HTTP 代理使用它来向代理前面的客户端发送代理后面的网络读取超时信号。

  • 599 网络连接超时错误

    某些 HTTP 代理使用的错误,用于向代理前面的客户端发送代理后面的网络连接超时信号。

互联网信息服务

Microsoft 的Internet 信息服务(IIS) Web 服务器扩展了 4xx 错误空间,以通过客户端请求发出错误信号。

  • 440 登录超时

    客户端的会话已过期,必须重新登录。

  • 449 重试

    服务器无法接受请求,因为用户没有提供所需的信息。

  • 451 重定向

    当有更高效的服务器可用或服务器无法访问用户的邮箱时,在Exchange ActiveSync中使用。客户端应重新运行 HTTP 自动发现操作以找到更合适的服务器。

IIS 有时会使用额外的十进制子代码来获取更具体的信息,但是这些子代码只出现在响应负载和文档中,而不是实际的 HTTP 状态代码。

nginx

nginx Web 服务器软件扩展了 4xx 错误空间,以表明客户端请求存在问题。

  • 444 没有反应

    在内部使用指示服务器不向客户端返回任何信息并立即关闭连接。

  • 494 请求头太大

    客户端发送的请求过大或标题行过长。

  • 495 SSL 证书错误

    400 Bad Request响应代码的扩展,在客户端提供了无效的客户端证书时使用。

  • 496 需要 SSL 证书

    400 Bad Request响应代码的扩展,在需要但未提供客户端证书时使用。

  • 497 HTTP 请求发送到 HTTPS 端口

    400 Bad Request响应代码的扩展,当客户端向侦听 HTTPS 请求的端口发出 HTTP 请求时使用。

  • 499 客户端关闭请求

    当客户端在服务器可以发送响应之前关闭请求时使用。

Cloudflare

Cloudflare的反向代理服务扩展了 5xx 系列错误空间,以表明源服务器存在问题。

  • 520 Web 服务器返回未知错误

    源服务器向 Cloudflare 返回了空的、未知的或意外的响应。

  • 521 Web 服务器已关闭

    源服务器拒绝来自 Cloudflare 的连接。源头的安全解决方案可能会阻止来自某些 Cloudflare IP 地址的合法连接。

  • 522 连接超时

    Cloudflare 联系原始服务器超时。

  • 523 来源不可达

    Cloudflare 无法访问源服务器;例如,如果源服务器的DNS 记录不正确或丢失。

  • 524 超时

    Cloudflare 能够完成与源服务器的 TCP 连接,但没有收到及时的 HTTP 响应。

  • 525 SSL 握手失败

    Cloudflare 无法与源服务器协商SSL/TLS 握手。

  • 526 SSL 证书无效

    Cloudflare 无法验证源 Web 服务器上的 SSL 证书。也被Cloud Foundry的 gorouter 使用。

  • 527 轨道炮错误

    错误 527 表示 Cloudflare 和源服务器的 Railgun 服务器之间的连接中断。

  • 530

    错误 530 与 1xxx 错误一起返回。

AWS 弹性负载均衡器

Amazon的Elastic Load Balancing添加了一些自定义返回代码

  • 460

    客户端在空闲超时期限过去之前关闭了与负载均衡器的连接。通常当客户端超时时间早于 Elastic Load Balancer 的超时时间时。

  • 463

    负载均衡器收到了一个包含超过 30 个 IP 地址的 X-Forwarded-For 请求标头。

  • 561 未经授权

    向负载均衡器注册的服务器返回的身份验证错误。您配置了一个侦听器规则来对用户进行身份验证,但身份提供者 (IdP) 在对用户进行身份验证时返回了错误代码。

缓存警告代码

以下与缓存相关的警告代码在 RFC 7234 中指定。与上面的其他状态代码不同,这些代码不是作为 HTTP 协议中的响应状态发送的,而是作为“警告”HTTP 标头的一部分。由于此标头通常既不由服务器发送,也不由客户端确认,因此它已被 HTTP 工作组与RFC 废弃。

  • 110 响应已过时

    缓存提供的响应是陈旧的(内容的年龄超过了 Cache-Control 标头或启发式选择的生命周期设置的最大年龄)。

  • 111 重新验证失败

    由于无法到达源服务器,缓存无法验证响应。

  • 112 断线操作

    缓存故意与网络的其余部分断开连接。

  • 113 启发式过期

    缓存试探性地选择了大于 24 小时的新鲜生命周期,并且响应的期限大于 24 小时。

  • 199 杂项警告

    任意的、非特定的警告。警告文本可以被记录或呈现给用户。

  • 214 应用转换

    如果代理对表示应用任何转换,例如更改内容编码、媒体类型等,则由代理添加。

  • 299 杂项持续警告

    与 199 相同,但表示持续警告。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值