[TOC]
分类
HTTP协议状态码表示的意思主要分为五类
范围 | 描述 |
---|---|
1×× | 保留 |
2×× | 表示请求成功地接收 |
3×× | 为完成请求客户需进一步细化请求 |
4×× | 客户错误 |
5×× | 服务器错误 |
1XX Preservation
保留字段,一般不可见
100 Continue
指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。
客户端应该继续发送剩下的请求数据或者请求已经完成,或者忽略回送数据。服务器必须发送
最后的回送在请求之后。
101 Switching Protocols
服务器依照客服端请求,通过Upgrade头信息,改变当前连接的应用协议。服务器将根据Upgrade头立刻改变协议
在101回送以空行结束的时候。
2XX
请求已经接手,开始处理了
200 OK Successful
指示客服端的请求已经成功收到,解析,接受。
201 Created
请求已经完成并一个新的返回资源被创建。
被创建的资源可能是一个URI资源,通常URI资源在Location头指定。
回送应该包含一个实体数据并且包含资源特性以及location通过用户或者用户代理来选择合适的方法。
实体数据格式通过煤体类型来指定即content-type头。
最开始服务器必须创建指定的资源在返回201状态码之前。
如果行为没有被立刻执行,服务器应该返回202。
202 Accepted
请求已经被接受用来处理。但是处理并没有完成。
请求可能或者根本没有遵照执行,因为处理实际执行过程中可能被拒绝。
203 Non-Authoritative Information
服务器己成功处理了请求,但返回的实体头部元 信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。
当前的信息可信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。
当前的信息可能是原始版本的子集或者超集。
比如包含资源的元数据可能导致原始服务器知道元信息的超集。
使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200OK的情况下才是合适的。
204 No Content
服务器成功处理了请求,但不需要返回任何实体内容,并且希望返 回更新了的元信息。
响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。
如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。
由于204响应被禁止包含任何消息体, 因此它始终以消息头后的第一个空行结尾。
205 Reset Content
服务器成功处理了请求,且没有返回任何内容。
但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。
该响应主要用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。
与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。
206 Partial Content
服务器已经成功处理了部分GET请求。
类似于FlashGet或迅雷这类的HTTP下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段 同时下载。
该请求必须包含Range头信息来指示客户端希望得到的内容范围,并且可能包含If-Range来作为请求条件。
任何不支持Range以及Content-Rang。头的缓存都禁止缓存206响应返回的内容。
207 Multi-Status
由WebDAV扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码
3XX Redirection
300 Multiple Choices
请求资源符合任何一个呈现方式,一般不怎么使用
301 Moved Permanently
请求的资源已经被赋予一个新的URI。
如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。
除非额外指定,否则这个响应也是可缓存的。
注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式
302 Found
通过不同的URI请求资源的临时文件。
请求的资源现在临时从不同的URI响应请求。
由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。
只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用GET方式访问在Location中规定的URI,而无视原先请求的方法。状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应。
303 See Other
请求的资源可以在另一个URI处找到,客户端必须使用GET方法来获取新位置的资源。
不能缓存303响应,但是可以缓存第二次请求的响应。
很多客户端识别303状态码,302状态码的实现其实就是对303状态码的响应
304 Not Modified
如果客服端已经完成一个有条件的请求并且请求是允许的,但是这个文档并没有改变,服务器应该返回304状态码。
304状态码一定不能包含信息主体
,从而通常通过一个头字段后的第一个空行结束。
这个返回码一般用于让缓存数据不再做重复请求
305 Use Proxy
请求的资源必须通过代理(由Location字段指定)来访问。
Location资源给出了代理的URI
306 Unused
未完全指定的 HTTP/1.1 规范的建议扩展
被用于1.0前一版本。目前已不再使用,但是代码依然被保留。
307 Temporary Redirect
同303一样,对于非GET和HEAD请求不能自动重定向
也就是说307相较于302来说,后续请求资源的方法是使用与当前交互相同的方法而不是全部使用GET。
303和307的出现是明确了302中的混乱状态。建议以后使用303和307,302在以后将会被淘汰掉
4XX Client Error
400 Bad Request
因为错误的语法导致服务器无法理解请求信息。
401 Unauthorized
如果请求需要用户验证。
回送应该包含一个WWW-Authenticate头字段用来指明请求资源的权限。
402 Payment Required
保留状态码
403 Forbidden
服务器接受请求,但是被拒绝处理。
一般是客户端用户权限引起的问题。
404 Not Found
服务器已经找到任何匹配Request-URI的资源。
一般用于客户端请求不存在的资源时回复。
405 Menthod Not Allowed
Request-Line 请求的方法不被允许通过指定的URI。
406 Not Acceptable
不可接受
常见原因 MIME类型不匹配
407 Proxy Authentication Required
需要授权才能访问的代理服务器
408 Reqeust Timeout
客服端没有提交任何请求在服务器等待处理时间内。
这个和500分离开理解,这个是客户端层面出现的超时
409 Conflict
资源冲突 检查一下你的路由设置正不正确,主要是端口
410 Gone
访问的地址已经失效了,需要一个新的地址来访问
411 Length Required
服务器拒绝接受没有定义Content-Length字段的情况下的请求
412 Precondition Failed
先决条件失败
客户端发送的 HTTP 数据流包括一个没有满足的‘先决条件’规范
一般是IPS供应商的问题,或者你的网络链路被修改导致编码混乱
413 Request Entity Too Large
服务器拒绝处理请求因为请求数据超过服务器能够处理的范围。
服务器可能关闭当前连接来阻止客服端继续请求。
414 Request-URI Too Long
服务器拒绝服务当前请求因为URI的长度超过了服务器的解析范围。
415 Unsupported Media Type
服务器拒绝服务当前请求因为请求数据格式并不被请求的资源支持。
416 Request Range Not Satisfialbe
所请求的范围无法满足
417 Expectation Failed
服务端执行失败
5XX Server Error
这些返回码肯定是服务端的错误
500 Internal Server Error
服务器遭遇异常阻止了当前请求的执行
一般是网络原因
501 Not Implemented
服务器没有相应的执行动作来完成当前请求。
502 Bad Gateway
网关错误,网络层问题
503 Service Unavailable
因为临时文件超载导致服务器不能处理当前请求
504 Gateway Timeout
网关超时
505 Http Version Not Supported
Http协议版本不支持