每个HTTP响应都带有一个状态码,该信号以清晰的数字表示有关如何处理请求的信息
HTTP状态代码是HTTP响应中的第一行,它是从服务器发送到客户端的。
如果您试图找出服务器发送特定状态代码的原因并了解其含义,或者正在构建服务器并且正在浏览以寻找完美的状态代码,则此列表将非常有用。
状态代码由3位数字和简短说明表示。
该数字的第一位数字标识反应组。
有5组:
1xx
:信息性响应-表示已收到并理解了请求2xx
:成功响应-表示已收到,理解并接受了客户请求的操作3xx
:重定向-表示客户端必须采取其他措施才能完成请求4xx
:客户端错误-表示存在错误,似乎是由客户端引起的5xx
:服务器错误-指示服务器上发生了错误
在其余的文章中,我列出了所有有用的状态代码。
(我删除了一些技术特定的技术,例如WebDAV以及很少使用的技术)
信息回应
状态码 | 描述 |
---|---|
100继续 | 服务器已接收到请求标头,客户端应继续发送请求正文(在需要发送正文的请求的情况下,例如POST请求)。在因不适当的标头而拒绝了请求之后,将大型请求正文发送到服务器将效率很低。要让服务器检查请求的标头,客户端必须在其初始请求中发送Expect:100-continue作为标头,并在发送正文之前收到100 Continue状态码作为响应。如果客户端收到错误代码,例如403(禁止)或405(不允许使用方法),则不应发送请求的正文。响应417 Expectation Failed指示应重复请求而没有Expect头,因为它指示服务器不支持期望(例如,HTTP / 1.0服务器就是这种情况)。 |
101交换协议 | 客户端要求服务器切换协议,并且服务器已同意这样做。参见RFC 7231#6.2.2 |
成功的回应
状态码 | 描述 |
---|---|
200 OK | 这是成功HTTP请求的标准响应。 |
创建了201 | 通常是对POST请求的响应。该请求已完成,并且已经创建了新资源。 |
202接受 | 该请求已被接受以进行处理。关于实际处理及其结果,没有任何说明,这可能发生在单独的服务器上,也可能是成批处理的。 |
203非权威信息 | 原始服务器返回200,并且客户端和服务器之间的转换代理更改了有效负载 |
204没有内容 | 服务器成功处理了请求,但未返回任何内容。 |
205重设内容 | 服务器成功处理了请求,但未返回任何内容。与204响应类似,但是服务器要求客户端重置文档视图(例如,用于清除表单) |
206部分内容 | 回应Range 如果请求来自客户端,则服务器会发送部分内容响应。See RFC 7233#4.1 |
重新导向
状态码 | 描述 |
---|---|
301永久移动 | 此请求和所有将来的请求都应定向到给定的URI。仅与GET / HEAD请求一起使用,并且308 Permanent Redirect 所有其他方法。 |
找到302个 | 资源被临时移动到由Location 标头。仅与GET / HEAD请求一起使用,并且307 Temporary Redirect 所有其他方法。 |
303查看其他 | 发出POST或PUT请求后,指向Location 标头,可使用新的GET请求访问。 |
304未修改 | 客户端使用请求标头时If-Modified-Since 或者If-None-Match ,此响应状态代码指示该资源尚未修改。 |
307临时重定向 | 类似于302 请求,除非它不允许更改HTTP方法 |
308永久重定向 | 类似于301 请求,除非它不允许更改HTTP方法 |
客户错误
状态码 | 描述 |
---|---|
400错误的要求 | 由于客户端上生成了请求错误,因此服务器无法处理该请求。错误可能包括格式错误的请求,太大而无法处理的请求或其他。 |
401未经授权 | 在需要身份验证且未授权客户端时发送 |
403禁止 | 由于各种原因,该资源不可用。如果原因是身份验证,请选择401 Unauthorized 状态码。 |
找不到404 | 找不到请求的资源。 |
405不允许的方法 | 该资源无法通过该HTTP方法使用,但可能与其他资源一起使用。 |
406不可接受 | 客户通过了Accept 标头,其值与服务器不兼容。 |
要求407代理身份验证 | 在客户端和服务器之间有一个需要身份验证的代理。 |
408请求超时 | 服务器超时等待请求。 |
409冲突 | 指示由于资源的当前状态冲突(例如多个同时更新之间的编辑冲突)而无法处理请求。 |
410去了 | 该资源不再可用,将不再可用。例如,比404更强大的功能是,搜索引擎将其解释为从其索引中删除该资源的指示。 |
411所需长度 | 客户端需要向请求添加Content-Length标头,这是必需的。 |
412前提条件失败 | 如果客户发送了If-Unmodified-Since 或者If-None-Match 请求标头,并且服务器不能满足该条件。 |
413有效负载过大 | 该请求大于服务器愿意或能够处理的请求。 |
414 URI太长 | 提供的URI太长,服务器无法处理。 |
415不支持的媒体类型 | 请求实体具有服务器或资源不支持的媒体类型。 |
416范围不满足 | 客户要求使用Range 标头,但服务器无法提供该部分。 |
417期望失败 | 服务器无法满足以下要求Expect 请求标头。 |
421错误的请求 | 该请求被定向到不能产生响应的服务器(例如,由于连接重用)。 |
426需要升级 | 客户端应切换到协议中指定的其他协议,例如TLS / 1.0Upgrade 标头字段。 |
428需要先决条件 | 服务器要求该请求包含一个If-Match 标头。 |
429请求太多 | 用户在给定的时间内发送了太多请求。用于速率限制。 |
431请求标头字段太大 | 由于一个或多个标头或整个标头集太大,因此无法满足该请求。 |
451由于法律原因不可用 | 由于法律原因该资源不可用 |
服务器错误
状态码 | 描述 |
---|---|
500内部服务器错误 | 通用服务器错误消息,在遇到意外情况且没有其他更具体的消息时给出。 |
501未实施 | 服务器要么无法识别请求方法,要么就无法满足请求。 |
502错误的网关 | 该服务器充当网关或代理,并从上游服务器收到无效响应。 |
503服务不可用 | 该服务器当前暂时不可用(因为它过载或为了维护而关闭)。 |
504网关超时 | 该服务器充当网关或代理,没有及时收到上游服务器的响应。 |
不支持505 HTTP版本 | 服务器不支持请求中指定的HTTP协议版本。 |
更多网络教程:
- WebSockets简介
- HTTP请求如何工作
- HTTP请求标头列表
- HTTP响应标头列表
- HTTP与HTTPS
- 什么是RFC?
- HTTP协议
- HTTPS协议
- HTTP请求的curl指南
- HTTP缓存
- HTTP状态代码列表
- 什么是CDN?
- HTTP / 2协议
- 什么是港口
- DNS,域名系统
- TCP协议
- UDP协议
- REST API简介
- 如何在macOS中安装本地SSL证书
- 如何生成本地SSL证书
- 如何为HTTPS配置Nginx
- 一个简单的Nginx反向代理,用于从子文件夹中提供多个Node.js应用程序
- 什么是反向代理?