常见的状态码

最近在复习http,把状态码的内容梳理一下。

2XX 成功

200 OK

表示客户端的请求被服务端正常处理。
使用GET方法时,对应请求资源的实体会作为响应返回。

204 No Content

表示客户端的请求被服务端正常处理,但响应报文中没有实体的主体部分,也不允许返回任何实体的主体。浏览器得到了204响应的话,将不会发生页面的更新。
一般在只需要往服务端发送信息而不用往客户端发响应信息的时候使用。

所以对于一些提交到服务器处理的数据,只需要返回是否成功的情况下,可以考虑使用状态码204来作为返回信息,从而省掉多余的数据传输。

206 Partial Content

表示客户端发送了范围请求,而且服务端成功地返回了请求的范围的内容。跟Content-Range有关。

3XX 重定向

301 Moved Permanently

永久重定向。表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。

在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地址。或者网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这些情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失。又比如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。--百度百科

302 Found

临时性重定向。跟301类似,不过这个表示的只是暂时的。

303 See Other

表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。

服务器在返回303的同时,应该(SHOULD)返回一个不同的URI,并放到Location字段中。
客户端收到303后,可以使用这个URI获取新的资源(必须使用GET获取新资源)
303的响应不能被缓存,但是Get到的新资源是可以被缓存的。

304 Not Modified

表示客户端向服务器发送附带条件的请求时,服务端允许访问资源但未满足条件。304作为状态码时,不包含任何响应的主题部分。

304虽然被划分在3XX类别中,但是和重定向没有关系。

我们经常把304和缓存看成一体,但其实缓存只是304状态码的其中一种情况吧。

4XX 客户端错误

400 Bad Request

表示请求报文中存在语法错误。

401 Unauthorized

表示发送的请求需要有通过http认证的认证信息。

403 Forbidden

表示服务器拒绝了客户端对资源的请求。

404 Not Found

万恶的404
表示服务器上无法找到请求的资源,也可以在服务器端拒绝请求时不想说明理由时使用。

5XX 服务器错误

表示服务器本身发生错误。

500 Internal Server Error

表示服务端在执行请求时发生了错误,也有可能时web应用的bug或故障。

503 Service Unavailable

表示因暂时超载或临时维护,服务端目前无法处理 HTTP 请求。服务端可能会在一段时间后恢复正常。

可以写入 RetryAfter 首部字段再返回给客户端,告知解除这个情况需要的时间。

posted @ 2018-03-02 17:01  xzhx  阅读(241)  评论(0编辑  收藏  举报