HTTP 状态码负责表示客户端 HTTP 请求的返回结果,标记服务器端的处理是否正常,通知出现的错误等工作.
状态码的类别:
记录在 RFC2616 上的 HTTP 状态码有 40 种,再加上 webDAV 等的扩展,数量达到了 60 余种,但是实际上经常使用的只有 14 种,接下来介绍下具有代表性的这 14 个状态码.
1,200 OK表示请求已正常处理.2,204 No Content表示请求处理成功,但没有资源可返回.3,206 Partial Content表示客户端进行了范围请求,服务器执行了这部分的 GET 请求.Content-Range 指定响应的范围.4,301 Moved Permanently表示请求的资源已被分配了新的 URI,以后应使用新的 URI(永久性重定向).5,302 Found表示请求的资源已被分配了新的 URI,希望本次请求使用新的 URI(临时性重定向).6,303 See Other表示请求的资源已被分配了新的 URI,希望本次请求使用新的 URI,并且使用 GET 方法获取请求的资源.
注:当返回 301,302,303 响应状态码时,几乎所有的浏览器都会把 POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送.
301,302 标准是禁止将 POST 方法改变成 GET 方法的,但实际上大家都没按照这样来,所以直接使用 303 响应是最理想的.
7,304 Not Modified表示客户端发送附带条件的请求时,服务器允许请求访问资源,但是未满足条件.不返回响应体,和重定向没有关系.
注:附带条件是指采用 GET 方法的请求报文中包含 If-Match,If-Modified-Since,If-None-Match,If-Range,If-UnModified-Since 中任一首部.
8,307 Temporary Redirect表示临时重定向,和 302 相同.9,404 Bad Request表示请求报文中存在语法错误.
注:浏览器会像对待 200 OK 一样对待该状态码.
10,401 Unauthorized表示发送的请求需要通过 HTTP 认证,如果这是第二次返回 401,则表示认证失败.
11,403 Forbidden表示请求被服务器拒绝.12,404 Not Found表示服务器上无法找到请求的资源.13,500 Internal Server Error表示服务器端在执行请求时发生了错误.14,503 Service Unavailable表示服务器忙,无法处理请求.可能是服务器暂时处于超负载或正在进行停机维护.
来源: http://www.bubuko.com/infodetail-2455405.html