http状态码负责表示客户端http请求的返回结果、标记服务端的处理是否正常、通知出现的错误等工作。
常见状态码大致分为如下几类:
2xx成功
状态码 | 原因短语 | 含义 |
---|---|---|
200 | ok | 表示从客户端发来的请求在服务端被正确处理了 |
201 | Created | 用于创建服务器对象的请求(比如,PUT),响应的实体主体主体部分中应该包含各种引用了已创建资源的URL,Location首部包含的则是具体的引用 |
202 | Accepted | 请求已被接受,但服务器还未对其执行任何动作,不能保证服务器会完成这个请求,这只是意味着接受请求时,它看起来是有效的 |
203 | Non-Authoritative Information | 实体首部包含的信息不是来自于远端服务器,而是来自资源的一份副本,如果中间节点有一份资源副本,但无法或者没有对它所发送的与资源有关的元信息进行验证就会出现这种情况。 |
204 | No Content | 响应报文中包含若干首部和一个状态行,但没有实体的主体部分,主要用于在浏览器不转为显示新文档的情况下使用,对其进行更新(比如刷新一个表单页面) |
205 | Reset Content | 另一个主要用于浏览器的代码。负责告知浏览器清楚当前页面中所有HTML表单元素 |
206 | Partial Content | 该状态码表示客户端进行了范围请求,而服务器成功地执行了这部分get请求。响应报文中包含Content-Range指定的实体内容 |
3xx
重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。如果资源已被移动,可发送一个重定向状态码和一个可选的Location首部来告知客户端资源已被移走,以及现在可以在哪里找到它
状态码 | 原因短语 | 含义 |
---|---|---|
300 | Multiple Choice | 客户端请求一个实际指向多个资源的URL时会返回这个状态码。比如服务器上有某个html文档的英语和法语版本。返回这个状态码时会带有一个选项列表,这样用户就可以选择他希望使用的那一项了。 |
301 | Move Permanently | 在请求的URL被移除时使用,响应的Location首部应该包含资源现在所处的URL |
302 | Found | 与301状态码类似;但是,客户端应该使用Location首部给出的URL来临时定位资源。将来的请求依然使用老的URL |
303 | See Other | 告知客户端应该使用另一个URL来获取资源。新的URL位于响应报文的Location首部,其主要目的是允许POST请求的响应将客户端定位到某个资源上去 |
304 | Not Modified | 如果客户端发起了一个条件GET请求,而最近的资源未被修改的话,就可以用这个状态码来说明资源未被修改。带有这个状态的响应不该包含实体的主体部分 |
307 | Temporarty Redirect | 与301状态码类似,但客户端应该使用Location首部给出的URL来临时定位资源。将来的请求应该使用老的URL |
4xx
4xx的响应结果表明客户端是发生错误的原因所在。
状态码 | 原因短语 | 含义 |
---|---|---|
400 | Bad Request | 该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容再次发送请求。另外,浏览器会像200 OK一样对待该状态码 |
401 | Unauthorized | 该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口 |
403 | Forbidden | 该状态码表明对请求资源的访问被服务器拒绝了。服务端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述 |
404 | Not Found | 该状态码表明服务器上无法找到请求的资源。通常会包含一个实体,以便客户端应用程序显示给用户看 |
5xx
5xx的响应结果表明服务器本身发生错误
状态码 | 原因短语 | 含义 |
---|---|---|
500 | Internal Server Error | 服务器遇到一个妨碍它为请求提供服务的错误时,使用此状态码 |
501 | Not Implemented | 客户端发起的请求超出服务器的能力范围(比如使用了服务器不支持的请求方法时) |
502 | Bad Gateway | 作为代理或网关使用的服务器从请求响应链的下一条链路上收到一条伪响应(比如它无法连接到父网关时) |
503 | Service Unavailable | 用来说明服务器现在无法提供服务,但将来可以。如果服务器知道什么时候资源会变更可用,可以在响应中包含一个Retry-After首部 |
504 | Gateway Timeout | 响应来自一个网关或者代理,它们在等待另一台服务器对其请求进行响应时超时 |
505 | HTTP Version Not Supported | 服务器收到的请求使用了它不支持的协议版本时 |