姚宁的博客

Http状态码速查

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。

状态码1xx

临时响应,试验性code 表示服务器收到了请求 需要进一步处理 在正式的开发中,服务端应禁止给客户端发送1xx响应

状态码 Http语义 简单解释
100 Continue 服务端已收到请求 客户端应继续发送请求主体
101 Switching Protocols 服务端理解了客户端的请求 通知客户端需要切换协议
102 Processing 服务端已收到并在处理请求 但无响应可用
状态码2xx

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

状态码 Http语义 简单解释
200 OK 请求成功 期望的数据将随响应返回
201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而创建,且其URI已经随Location头信息返回。
202 Accepted 服务器已接受请求,但尚未处理。最终该请求可能会也可能不会被执行,并且可能在处理发生时被禁止。
203 Non-Authoritative Information(自HTTP / 1.1起) 服务器是一个转换代理服务器(transforming proxy,例如网络加速器),以200 OK状态码为起源,但回应了原始响应的修改版本。
204 No Content 服务器成功处理了请求,没有返回任何内容。
205 Reset Content 服务器成功处理了请求,但没有返回任何内容。与204响应不同,此响应要求请求者重置文档视图。
206 Partial Content 服务器已经成功处理了部分GET请求。类似于FlashGet或者迅雷这类的HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。
207 Multi-Status 代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。
208 Already Reported DAV绑定的成员已经在(多状态)响应之前的部分被列举,且未被再次包含。
226 IM Used 服务器已经满足了对资源的请求,对实体请求的一个或多个实体操作的结果表示。
状态码3xx

通常用来重定向 后续的请求地址会在Http Header的Location中指明 通常浏览器最多连续重定向5次

状态码 Http语义 简单解释
301 Moved Permanently 被请求的资源已永久移动到新位置,并返回新位置的url 注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式
状态码4xx

这类状态码代表了客户端错误 妨碍了服务器处理

状态码 Http语义 简单解释
400 Bad Request 明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求)
401 Unauthorized 未认证, 一般是没有在Http头部加入Authorization信息所致
402 Payment Required 预留代码,起初是某种在线支付方案的一部分,然而大部分服务商都没用到
403 Forbidden 请求被拒绝, 通常是服务器对你采用了某种封禁策略
404 Not Found 请求失败, 客户端希望的资源在服务器上并没有找到
405 Method Not Allowed 方法不被允许, 需要正确使用Http Method
406 Not Acceptable 通常为在请求头中的Accept字段指定可以响应资源类型 参见内容协商
407 Proxy Authentication Required 与401类似 需要在代理服务器上进行认证
408 Request Timeout 请求超时 指的是客户端没有在指定时间内完成一个请求的发送
409 Conflict 请求存在冲突无法处理该请求
410 Gone 表示所请求的资源不再可用,将不再可用。当资源被有意地删除并且资源应被清除时,应该使用这个。在收到410状态码后,用户应停止再次请求资源。但大多数服务端不会使用此状态码,而是直接使用404状态码。
411 Length Required 需要客户端在请求头中加入Content-Length字段
412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上
413 Request Entity Too Large 提交的数据实体过大
414 Request-URI Too Long URI长度超过了服务器能处理的长度, 通常是GET请求参数过长
415 Unsupported Media Type 不支持的媒体类型, 比如支持png 但是上传的是jpg
416 Requested Range Not Satisfiable 前称“Requested Range Not Satisfiable”。客户端已经要求文件的一部分(Byte serving),但服务器不能提供该部分。例如,如果客户端要求文件的一部分超出文件尾端。
417 Expectation Failed 在请求头Expect中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服显的证据证明在当前路由的下一个节点上,Expect的内容无法被满足
418 I’m a teapot 彩蛋 参见超文本咖啡壶控制协议
420 Enhance Your Caim Twitter Search与Trends API在客户端被限速的情况下返回
421 Misdirected Request 该请求针对的是无法产生响应的服务器(例如因为连接重用)
429 Too Many Requests 用户在给定的时间内发送了太多的请求。旨在用于网络限速
431 Request Header Fields Too Large 服务器不愿处理请求,因为一个或多个头字段过大
451 Unavailable For Legal Reasons 该访问因法律的要求而被拒绝,由IETF在2015核准后新增加
状态码5xx

这类状态码代表了服务端错误 一般是服务端发生了故障 或者发生了异常但并未被捕获

状态码 Http语义 简单解释
500 Internal Server Error 通用错误消息,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。没有给出具体错误信息
501 Not Implemented 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求
502 Bad Gateway 网关错误 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
503 Service Unavailable 服务不可用 临时的服务器维护或者过载
504 Gateway Timeout 网关超时 比如DNS解析超时
505 HTTP Version Not Supported 服务器不支持当前的Http版本
511 Network Authentication Required 客户端需要进行身份验证才能获得网络访问权限,旨在限制用户群访问特定网络

参考资料

RFC(征求意见稿)
Http状态码
W3C RFC2616
HTTP头字段