原文地址:HTTP状态码详解
触发整理这篇资料的初心为在工作中,经常看到不规范的HTTP状态码使用,实际的问题原因与应有的原因范围不符,很容易对人造成误解。
一、状态码分类
HTTP状态码分为如下5类
总体范围 |
已定义范围 |
类别 |
100~199 |
100~101 |
信息 |
200~299 |
200~206 |
成功 |
300~399 |
300~305 |
重定向 |
400~499 |
400~417 |
客户端错误 |
500~599 |
500~505 |
服务器错误 |
二、状态码详细说明
100~199(已定义:100~101)
状态码 |
原因短语 |
含义 |
100 |
Continue( 继续) |
收到了请求的起始部分, 客户端应该继续请求 |
101 |
Switching Protocols( 切换协议) |
服务器正根据客户端的指示将协议切换成 Update首部列出的协议 |
200~299(已定义:200~206)
状态码 |
原因短语 |
含义 |
200 |
OK |
服务器已成功处理请求 |
201 |
Created( 已创建) |
对那些要服务器创建对象的请求来说, 资源已创建完毕 |
202 |
Accepted( 已接受) |
请求已接受, 但服务器尚未处理 |
203 |
Non-Authoritative Information( 非权威信息) |
服务器已将事务成功处理, 只是实体首部包含的信息不是来自原始服务器, 而是来自资源的副本 |
204 |
No Content( 没有内容) |
响应报文包含一些首部和一个状态行, 但不包含实体的主体内容 |
205 |
Reset Content( 重置内容) |
另一个主要用于浏览器的代码。 意思是浏览器应该重置当前页面上所有的 HTML 表单 |
206 |
Partial Content( 部分内容) |
部分请求成功 |
300~399(已定义300~307)
状态码 |
原因短语 |
含义 |
300 |
Multiple Choices( 多项选择) |
客户端请求了实际指向多个资源的 URL。 这个代码是和一个选项列表一起返回的, 然后用户就可以选择他希望使用的选项了 |
301 |
Moved Permanently( 永久搬离) |
请求的 URL 已移走。 响应中应该包含一个 LocationURL, 说明资源现在所处的位置 |
302 |
Found( 已找到) |
与状态码 301 类似, 但这里的搬离是临时的。 客户端应该用 Location 首部给出的 URL 对资源进行临时定位 |
303 |
See Other( 参见其他) |
告诉客户端应该用另一个 URL 获取资源。 这个新的URL 位于响应报文的 Location 首部 |
304 |
Not Modified( 未修改) |
客户端可以通过它们所包含的请求首部发起条件请求。 这个代码说明资源未发生过变化 |
305 |
Use Proxy( 使用代理) |
必须通过代理访问资源, 代理的位置是在 Location首部中给出的 |
306 |
( 未用) |
这个状态码当前并未使用 |
307 |
Temporary Redirect( 临时重定向) |
和状态码 301 类似。 但客户端应该用 Location 首部给出的 URL对资源进行临时定位 |
400~499(已定义400~417)
状态码 |
原因短语 |
含义 |
400 |
Bad request( 坏请求) |
告诉客户端它发送了一条异常请求 |
401 |
Unauthorized( 未授权) |
与适当的首部一起返回, 在客户端获得资源访问权之前, 请它进行身份认证 |
402 |
Payment Required( 要求付款) |
当前此状态码并未使用, 是为未来使用预留的 |
403 |
Forbidden( 禁止) |
服务器拒绝了请求 |
404 |
Not Found( 未找到) |
服务器无法找到所请求的 URL |
405 |
Method Not Allowed( 不允许使用的方法) |
请求中有一个所请求的 URI 不支持的方法。 响应中应该包含一个 Allow 首部,以告知客户端所请求的资源支持使用哪些方法 |
406 |
Not Acceptable( 无法接受) |
客户端可以指定一些参数来说明希望接受哪些类型的实体。 服务器没有资源与客户端可接受的 URL 相匹配时可使用此代码 |
407 |
Proxy Authentication Required( 要求进行代理认证) |
和状态码 401 类似, 但用于需要进行资源认证的代理服务器 |
408 |
Request Timeout( 请求超时) |
如果客户端完成其请求时花费的时间太长, 服务器可以回送这个状态码并关闭连接 |
409 |
Conflict( 冲突) |
发出的请求在资源上造成了一些冲突 |
410 |
Gone( 消失了) |
除了服务器曾持有这些资源之外, 与状态码 404 类似 |
411 |
Length Required( 要求长度指示) |
服务器要求在请求报文中包含Content-Length首部时会使用这个代码。发起的请求中若没有Content-Length 首部, 服务器是不会接受此资源请求的 |
412 |
Precondition Failed( 先决条件失败) |
如果客户端发起了一个条件请求, 如果服务器无法满足其中的某个条件, 就返回这个响应码 |
413 |
Request Entity Too Large( 请求实体太大) |
客户端发送的实体主体部分比服务器能够或者希望处理的要大 |
414 |
Request URI Too Long(请 求 URI太长) |
客户端发送的请求所携带的请求 URL 超过了服务器能够或者希望处理的长度 |
415 |
Unsupported Media Type( 不支持的媒体类型) |
服务器无法理解或不支持客户端所发送的实体的内容类型 |
416 |
Requested Range Not Satisfiable( 所请求的范围未得到满足) |
请求报文请求的是某范围内的指定资源, 但那个范围无效,或者未得到满足 |
417 |
Expectation Failed( 无法满足期望) |
请求的 Expect 首部包含了一个预期内容, 但服务器无法满足 |
500~599(已定义500~505)
状态码 |
原因短语 |
含义 |
500 |
Internal Server Error( 内 部 服 务 器错误) |
服务器遇到了一个错误, 使其无法为请求提供服务 |
501 |
Not Implemented( 未实现) |
服务器无法满足客户端请求的某个功能 |
502 |
Bad Gateway( 网关故障) |
作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应 |
503 |
Service Unavailable(未提供此服务) |
服务器目前无法为请求提供服务, 但过一段时间就可以恢复服务 |
504 |
Gateway Timeout( 网关超时) |
与状态码 408 类似, 但是响应来自网关或代理, 此网关或代理在等待另一台服务器的响应时出现了超时 |
505 |
HTTP Version Not Supported( 不支持的 HTTP 版本) |
服务器收到的请求是以它不支持或不愿支持的协议版本表示的 |
以上资料来自于《HTTP权威指南》,看了一下百度百科,发现有几个新的,后续可能还会增加,所以就不补充进来了,可以查阅百度百科的HTTP状态码