图解HTTP之HTTP状态码
chenxiaochun opened this issue · 0 comments
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
状态码的类别:
类别 | 类别说明 | 原因说明 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态) | 服务器处理请求出错 |
2XX 成功
-
200 OK
表示从客户端发来的请求在服务器端被正常处理了。
在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如使用GET方法时,对应请求的实体会作为响应返回;而使用HEAD方法时,对应请求资源的实体就不会随报文主体作为响应返回。 -
204 No Content
表示服务器端接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分,而且也不允许返回任何实体的主体。当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。
一般在只需要从客户端往服务器发送信息,而不需要服务器端返回新信息内容的情况下使用。 -
206 Partial Content
表示客户端进行了范围请求,而且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
3XX 重定向
-
301 Moved Permanently
永久性重定向。表示请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI。 -
302 Found
临时性重定向。表示请求的资源已经被分配了新的URI,但是希望用户仅仅本次使用的URI访问。 -
303 See Other
表示请求的对应资源存在着另一个URI,应使用GET方法定向获取请求的资源。它与302状态码有着相同的功能,但303状态码明确表示客户端应当采用GET方法获取资源,这是它与302状态码的区别。 -
304 Not Modified
表示客户端采用GET方法发送的请求报文中包含If-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中的任一首部时,服务器端允许请求访问资源,但未满足条件的情况。 -
307 Temporary Redirect
临时重定向。它与302状态有着相同的含义。区别就是:尽管302状态码标准禁止POST变换成GET,但实际时大家并不遵守;307会遵照浏览器标准,不会从POST变成GET。
4XX 客户端错误
-
400 Bad Request
表示请求报文中存在语法错误,需要修改请求的内容后再次发送请求。 -
401 Unauthorized
表示发送的请求需要通过HTTP认证(BASIC认证、DIGEST认证)信息。返回401状态码的响应信息必须包含一个适用于被请求资源的WWW-Authenticate首部用于询问用户的信息。 -
403 Forbidden
表示请求访问的资源被服务器拒绝了。一般原因可能就是未获得文件的访问权限。 -
404 Not Found
表示服务器无法找到对应的请求资源。
5XX 服务器错误
-
501 Internal Server Error
表示服务器在执行请求时发生错误。也有可能是web应用存在bug或者是某些临时性的故障。 -
503 Service Unavailable
表示服务器暂处于超负载或者正在进行停机维护,现在无法处理请求。如果知道以上状态需要持续的时间,可以写入Retry-After首部字段返回给客户端。