HTTP状态码被分成了五类。
100-199 用于指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出客户端的错误。
500-599 用于支持服务器错误。
100-199:信息性状态码
状态码 | 原因短语 | 含义 |
---|---|---|
100 | continue | 说明收到了请求的初始部分,请客户端继续发送 |
101 | switch protocols | 说明服务器正在根据客户端的指定,将协议切换成update首部所列的协议 |
200-299:成功状态码
状态码 | 原因短语 | 含义 |
---|---|---|
200 | ok | 请求成功 |
201 | created | 用于创建服务器对象的请求(比如put)响应的实体主体部分中应该包含了各种引用了已创建的资源的URL。服务器必须在发送这个状态码之前创建好对象 |
202 | accepted | 请求已被接收,但服务器还未对其执行任何动作。最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于批处理的操作),而不必让客户端一直保持与服务器的连接直到批处理操作全部完成。 |
203 | non-authoritative information | 实体首部包含的信息不是来自于源端服务器,而是来自资源的一份副本。 |
204 | no content | 响应报文中包含若干首部和一个状态行,但没有实体的主体部分 |
205 | reset content | 负责告知浏览器清除当前页面中所有的HTML表单元素 |
300-399:重定向状态码
状态码 | 原因短语 | 含义 |
---|---|---|
300 | Multiple choices | 客户端请求一个实际指向多个资源的URL时会返回这个状态码,比如服务器上有某个HTML文档的英语和法语版本。返回这个代码时会带有一个选项列表,这样用户就可以选择他希望使用的那一项。 |
301 | move permanently | 被请求的资源已永久移动到新位置,在请求的URL已被移除时使用。响应的location首部中应该包含资源现在所处的URL |
302 | found | 请求的资源现在临时从不同的 URI 响应请求。 |
303 | see other | 告知客户端应该用另一个URL来获取资源。新的URL位于响应报文的location首部。其主要目的是允许post请求的响应将客户端定向到某个资源上去 |
304 | not modified | 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。 |
305 | use proxy | 用来说明必须使用一个代理来访问资源,代理的位置由location首部给出。 |
307 | temporary redirect | 请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。 |
400-499:客户端错误状态码
状态码 | 原因短语 | 含义 |
---|---|---|
400 | bad request | 用于告知客户端它发送了一个错误的请求 |
401 | unauthorized | 当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。 |
403 | forbidden | 服务器已经理解请求,但是拒绝执行它。如果服务器想说明拒绝原因,可以在包含实体的主体部分来对原因进行描述。但这个状态码通常在服务器不想说明拒绝原因时使用 |
404 | not found | 无法找到指定位置的资源。 |
405 | Method Not Allowed | 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。 |
406 | Not Acceptable | 表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。 |
408 | Request Timeout | 请求超时 |
500-599:服务器错误状态码
状态码 | 原因短语 | 含义 |
---|---|---|
500 | Internal Server Error | 服务器遇到一个妨碍它为请求提供服务的错误时,使用此状态码。该状态经常由CGI程序引起也可能(但愿不会如此!)由无法正常运行的或返回头信息格式不正确的servlet引起。 |
501 | Not Implemented | 客户端使用了服务器未实现的请求方法 |
502 | Bad Gateway | 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 |
503 | Service Unavailable | 用于说明服务器现在无法为请求提供服务。但将来可以,服务器可提供一个Retry-After头信息告诉客户端什么时候资源可用。 |
504 | Gateway Timeout | 该状态也用于充当代理或网关的服务器;它指出接收服务器没有从远端服务器得到及时的响应。 |
505 | HTTP Version Not Supported | 服务器不支持在请求中所标明 HTTP 版本。 |
参考:
《HTTP权威指南》