第四章:返回结果的HTTP状态码
1.HTTP状态码的作用是描述服务器端返回的请求结果。
2.状态码由三位数字组成,第一位数字指定了响应的类别,分类如下:
一、1XX:接收的请求正在处理(正在处理)
二、2XX:请求正常处理完毕(成功)
三、3XX:需要进行附加操作以完成请求(重定向)
四、4XX:服务器无法处理请求(客户端出错)
五、5XX:服务器处理请求出错(服务器端出错)
3.状态码有60余种,但是常用的只有14种。
4.常用的状态码如下:
①200 OK:表示正常处理。
②204 No Content:表示正常处理,但是响应报文中没有实体主体。
③206 Partial Content:表示客户端进行了范围请求,服务器端响应报文的实体主体中只返回该范围内的内容。
④301 Moved Permanently:表示所请求的资源被永久分配了新的URI。(就像永久搬家)
⑤302 Found:表示所请求的资源被临时分配了新的URI。(就像临时租房)
⑥303 See Other:表示希望客户端以GET方法,重定向到另一个URI中。
备注:几乎所有浏览器遇到301,302,303状态码时都会把POST改成GET,并删除请求报文中的实体主体,之后再次发起请求(虽然标准规定是301,302是禁止将POST改成GET,但是实际中大家都是这么做的)。
⑦304 Not Modified:表示所请求的资源没发生改变,客户端可以继续用以前的缓存,响应报文中没有实体主体。
⑧307 Temporary Redirect:和302一样,但是严格执行302的标准,不把POST改成GET。
⑨400 Bad Request:表示请求报文中存在语法错误。
⑩401 Unauthorized:表示发送请求时需要通过HTTP认证,或者认证失败。
⑩①403 Forbidden:表示没有访问权限,所请求的资源被服务器端拒绝了。
⑩②404 Not Found:表示服务器上找不到这个资源,服务器拒绝请求的时候也可以用。
⑩③500 Internal Server Error:表示服务器出现bug或故障。
⑩④503 Service Unavailable:表示服务器处于超负荷状态或停机维护,无法处理请求。
5.不少返回的状态码都是错误的,比如web应用程序发生错误,可以依然返回200 OK,这种情况也经常遇到。