知识分享之规范——HTTP 状态码
背景
知识分享之规范类别是我进行整理的日常开发使用的各类规范说明,作为一个程序员需要天天和各种各样的规范打交道,而有些规范可能我们并不是特别了解,为此我将一些常见的规范均整理到知识分享之规范系列中,便于小伙伴们快速翻阅学习。
参考文献
概念
HTTP 定义了这些标准状态代码,可用于传达客户端请求的结果。状态码分为五类。
- 1xx:信息性——传达传输协议级信息。
- 2xx:成功——表示客户端的请求被成功接受。
- 3xx:重定向——表示客户端必须采取一些额外的行动才能完成他们的请求。
- 4xx:客户端错误——这类错误状态代码将矛头指向客户端。
- 5xx:服务器错误——服务器对这些错误状态代码负责。
1xx 状态代码 [信息]
状态码 | 描述 |
---|---|
100 继续 | 临时回应。向客户端指示已收到请求的初始部分并且尚未被服务器拒绝。客户端应该继续发送请求的剩余部分,或者,如果请求已经完成,则忽略此响应。服务器必须在请求完成后发送最终响应。 |
101交换协议 | 为响应来自客户端的升级请求标头而发送,并指示服务器正在切换到的协议。 |
102 处理 (WebDAV) | 表示服务器已收到并正在处理请求,但还没有响应。 |
103 早期提示 | 主要用于与Link 标头一起使用。它建议用户代理在服务器准备最终响应时开始预加载资源。 |
2xx 状态码 [成功]
状态码 | 描述 |
---|---|
200 好 | 表示请求成功。 |
201 已创建 | 表示请求已成功,并因此创建了新资源。 |
202 接受 | 表示请求已收到但尚未完成。它通常用于日志运行请求和批处理。 |
203 非权威信息 | 表示实体标头中返回的元信息不是原始服务器可用的最终集,而是从本地或第三方副本收集的。呈现的集合可能是原始版本的子集或超集。 |
204 无内容 | 服务器已完成请求,但不需要返回响应正文。服务器可以返回更新后的元信息。 |
205 重置内容 | 指示客户端重置发送此请求的文档。 |
206部分内容 | 当Range 从客户端发送标头以仅请求资源的一部分时使用它。 |
207 多状态 (WebDAV) | 向客户端指示发生了多个操作,并且每个操作的状态都可以在响应的正文中找到。 |
208 已报告 (WebDAV) | 允许客户端告诉服务器前面提到了相同的资源(具有相同的绑定)。它永远不会作为真正的 HTTP 响应代码出现在状态行中,而只会出现在正文中。 |
226 IM 已使用 | 服务器已完成对资源的 GET 请求,响应是应用于当前实例的一个或多个实例操作的结果的表示。 |
3xx 状态码 [重定向]
状态码 | 描述 |
---|---|
300多项选择 | 该请求有多个可能的响应。用户代理或用户应该选择其中之一。 |
301 永久搬家 | 请求资源的 URL 已永久更改。新 URL 由Location 响应中的标头字段给出。除非另有说明,否则此响应是可缓存的。 |
302 找到 | 请求资源的 URL 已临时更改。新 URL 由Location 响应中的字段给出。此响应仅在由Cache-Control orExpires 标头字段指示时才可缓存。 |
303 查看其他 | 响应可以在不同的 URI 下找到,并且应该在该资源上使用 GET 方法检索。 |
304 未修改 | 指示客户端响应没有被修改,因此客户端可以继续使用相同的缓存版本的响应。 |
305 使用代理(已弃用) | 指示请求的响应必须由代理访问。 |
306(未使用) | 它是一个保留的状态码,不再使用。 |
307临时重定向 | 指示客户端使用先前请求中使用的相同方法从另一个 URI 获取请求的资源。它与302 Found 之前请求中使用的相同 HTTP 方法类似,但有一个例外。 |
308 永久重定向(实验性) | 指示资源现在永久位于由Location 标头指定的另一个 URI。它与301 Moved Permanently 之前请求中使用的相同 HTTP 方法类似,但有一个例外。 |
4xx 状态码(客户端错误)
状态码 | 描述 |
---|---|
400 错误请求 | 由于语法不正确,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。 |
401未经授权 | 表示请求需要用户认证信息。客户端可以使用合适的 Authorization 头域重复请求 |
402 需要付款(实验性) | 保留供将来使用。它旨在用于数字支付系统。 |
403 禁止 | 未经授权的请求。客户端没有内容的访问权限。与 401 不同,客户端的身份为服务器所知。 |
404 未找到 | 服务器找不到请求的资源。 |
405 方法不允许 | 服务器知道请求 HTTP 方法,但已被禁用,不能用于该资源。 |
406 不可接受 |
Accept 服务器在请求中发送的标头中找不到任何符合用户代理给出的标准的内容。 |
407 需要代理身份验证 | 表示客户端必须首先通过代理验证自己。 |
408 请求超时 | 表示服务器在服务器分配的超时期限内没有收到来自客户端的完整请求。 |
409 冲突 | 由于与资源的当前状态冲突,无法完成请求。 |
410 走了 | 请求的资源在服务器上不再可用。 |
411 长度要求 | 服务器拒绝接受没有定义 Content-Length 的请求。如果客户端添加了有效的Content-Length 头域,客户端可以重复请求。 |
412 前置条件失败 | 客户端在其标头中指出了服务器不满足的先决条件。 |
413请求实体太大 | 请求实体大于服务器定义的限制。 |
414 请求 URI 太长 | 客户端请求的 URI 比服务器可以解释的要长。 |
415 不支持的媒体类型 |
Content-type 服务器不支持请求的媒体类型。 |
416 请求的范围不满足 |
Range 无法满足请求中标头字段指定的范围。 |
417 期望失败 |
Expect 服务器无法满足请求头字段指示的期望。 |
418 我是一个茶壶(RFC 2324) | 它被定义为 April 的笑话,预计不会由实际的 HTTP 服务器实现。(RFC 2324) |
420增强你的冷静(推特) | 当客户端受到速率限制时,由 Twitter 搜索和趋势 API 返回。 |
422 无法处理的实体 (WebDAV) | 服务器理解请求实体的内容类型和语法,但由于某种原因仍然无法处理请求。 |
423 锁定 (WebDAV) | 正在访问的资源被锁定。 |
424 失败的依赖 (WebDAV) | 由于先前的请求失败,请求失败。 |
425 太早了 (WebDAV) | 表示服务器不愿意冒险处理可能被重放的请求。 |
426 需要升级 | 服务器拒绝执行请求。服务器将在客户端升级到不同的协议后处理请求。 |
428 需要先决条件 | 源服务器要求请求是有条件的。 |
429 请求过多 | 用户在给定时间内发送了太多请求(“速率限制”)。 |
431 请求标头字段太大 | 服务器不愿意处理请求,因为它的头字段太大。 |
444无响应(Nginx) | Nginx 服务器不向客户端返回任何信息并关闭连接。 |
449重试(微软) | 应在执行适当的操作后重试该请求。 |
450 被 Windows 家长控制阻止 (Microsoft) | Windows 家长控制已打开并阻止对给定网页的访问。 |
451 因法律原因不可用 | 用户代理请求的资源无法合法提供。 |
499 客户端关闭请求(Nginx) | 当 HTTP 服务器正在处理其请求时,客户端关闭了连接,使服务器无法发回 HTTP 标头。 |
5xx 状态码(服务器错误)
状态码 | 描述 |
---|---|
500内部服务器错误 | 服务器遇到了阻止它完成请求的意外情况。 |
501 未实施 | 服务器不支持HTTP方式,无法处理。 |
502错误的网关 | 服务器在作为网关获取处理请求所需的响应时收到无效响应。 |
503服务不可用 | 服务器尚未准备好处理请求。 |
504网关超时 | 服务器充当网关,无法及时获得请求的响应。 |
505 不支持 HTTP 版本(实验性) | 服务器不支持请求中使用的 HTTP 版本。 |
506变种也协商(实验) | 表示服务器有内部配置错误:选择的变体资源被配置为自己参与透明内容协商,因此不是协商过程中的适当端点。 |
507 存储空间不足 (WebDAV) | 无法对资源执行该方法,因为服务器无法存储成功完成请求所需的表示。 |
508 检测到环路 (WebDAV) | 服务器在处理请求时检测到无限循环。 |
510 未扩展 | 服务器需要对请求进行进一步扩展才能完成它。 |
511 需要网络身份验证 | 表示客户端需要进行身份验证才能获得网络访问权限。 |
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。