HTTP状态码
状态码是什么想必都知道,状态码的作用是描述返回的请求结果,我们平时访问网站时有些时候出现的404,500这些就是状态码。下图是状态码的类别图。

HTTP状态码的种类很多,多达60余中,但是平时常用的大概只有14种左右,下面我们来仔细看一下这14种状态码。
1.200 OK
表示客户端发来的请求在服务器端被正常处理了。
2.204 No Content
便是服务器接收到的请求已成功处理,但返回的报文中不含实体的主体部分。一般用于只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。
3.206 Partial Content
表示客户端进行了范围请求,服务器成功执行了请求范围的GET请求。
4.301 Moved Permanently
表示请求资源已被分配新的URI,以后应使用资源现在所指的URI。属于永久性重定向。
5.302 Found
与301类似,都表示表示请求资源已被分配新的URI,但是属于临时重定向。
6.303 See Other
303我觉得像是302的细化的一个状态码。这儿顺便说一下,当301,302,303响应状态码返回时,浏览器会自动将POST改为GET,并删除请求报文中的主体,之后请求自动再次发送。但是301,302中是禁止将POST改为GET的,虽然实际使用中大家并未遵行这个标准。303和302有着相同的功能,但是303是明确表示客户端应当采用GET方法获取资源。
7.304 Not Modified
客户端发送附带条件的请求(如If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since),虽然服务器找到资源,但是不符合条件。和重定向无关。
8.307 Temporary Redirect
和上述的302有着相同的定义,但是307表示不会将POST变为GET。
9.400 Bad Request
表示请求报文中存在语法错误。
10.401 Unauthorized
表示发送请求需要HTTP认证的认证信息,若认证后还有,则表示认证失败。
11.403 Forbidden
表示请求被服务器拒绝,一般未获得文件系统访问权限,从未授权的发送源IP试图访问等情况都可能发生403。
12.404 Not Found
喜闻乐见的404,表示服务器上无请求资源。
13.500 Internal Server Error
表示服务器执行请求发生错误,有可能是web端bug导致或某些临时故障。
14.503 Service Unavailable
表示服务器暂时处理超负荷或正在进行停机维护,现在无法处理请求。(预知解决时间,在写入Retry-After首部字段返回给客户端)
最后需要注意的是:状态码和真实状况不一致的情况也有可能会发生。
参考资料:《图解HTTP》+无所不知的度娘+各位大佬的博客(文中图片均来自《图解HTTP》)