第四章 返回结果的HTTP状态码
状态码类别
- 1XX:信息性状态码,接收的请求正在处理
- 2XX:成功状态码,请求正常处理完毕
- 3XX:重定向状态码,需要进行附加操作以完成请求
- 4XX:客户端错误状态码:服务器无法处理请求
- 5XX:服务器错误状态码:服务器处理请求出错
常见的14个状态码
- 200 OK
- 204 No Content(不返回任何实体的主体,浏览器显示的页面不发生更新,比如DELETE方法返回204)
- 206 Partial Content(客户端进行范围请求,用于断点续传)
- 301 Moved Permanently(永久重定向。表示请求的资源已被分配新的URI,以后使用资源现在所指的URI,更新并保存标签)
- 302 Found(临时重定向。表示请求的资源已被分配新的 URI,希望用户(本次)能使用新的URI访问,不更新标签)
- 303 See Other(表示由于请求对应的资源存在着另一个URI,应使用GET方法重定向获取请求的资源)
- 304 Not Modified(表示客户端发送附带条件的请求(指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部)时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存),304和重定向没有关系)
- 307 Temporary Redirect(和302有相同的含义,尽管302标准禁止POST变换成GET,但实际使用时大家并不遵守)
- 400 Bad Request(表示请求报文中存在语法错误)
- 401 Unauthorized(表示发送的请求需要有通过HTTP认证的认证信息)
- 403 Forbidden(表明对请求资源的访问被服务器拒绝了)
- 404 Not Found(表明服务器上无法找到请求的资源)
- 500 Internal Server Error(表明服务器在执行请求时发生了错误)
- 503 Service Unavailable(表明服务器暂时处于超负载或正在进行停机维护)
其他
状态码和状况的不一致
不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如Web应用程序内部发生错误,状态码依然返回200 OK,这种情况也经常遇到。