####1. 2XX 成功 200 OK 表示从客户端发来的请求在服务器端被正常处理了
204 No Content 代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分.另外,也不予许返回任何实体的主体.
206 Partial Content 表示客户端进行了范围请求(Range), 而服务器成功执行了这部分的GET请求.响应报文中包含由Content-Range指定范围的实体内容.
####2. 3XX 重定向 301 Moved Permanently 永久性重定向.表示请求的资源已被分配了新的URI, 以后应使用资源现在所指的URI.服务器返回此响应时,会自动将请求者转到新位置.
302 Found 临时性重定向.表示服务器目前正在从不同位置的页面响应请求,但请求者应继续使用原有位置来进行以后的请求. HTTP1.1在介绍302中有说明,如果客户端发出非GET或HEAD请求后,收到服务器的302状态码,那么不能自动发起重定向,除非得到用户确认. 但是很多浏览器都把302当做303处理了,他们获取到HTTP响应报文头部的Location字段信息,并发起一个GET请求. (301,302标准是禁止将POST方法改变成GET方法的)
303 See Other 表示服务器正在从不同的URI响应请求, 并且应该使用该资源的GET方法.它是为了允许POST请求重定向到GET请求.
304 Not Modified 表示客户端发送附带If-Match/If-Modified-Since/If-None-Match/If-Range/If-Unmodified-Since等条件的请求, 但条件未满足的情况. 一般是自从上次请求后,请求的资源未发生变化,服务器会返回304.304状态码返回时不包含任何响应的主体部分.
307 Temporary Redirect 临时性重定向.该状态码的描述与302相同. 由于很多浏览器对302的处理不符合标准,所以HTTP/1.1添加303和307来明确告诉客户端需要进行怎样的处理.
####3. 4XX 客户端错误 400 Bad Request 表示请求报文中存在语法错误.
401 Unauthorized 表示发送的请求需要有通过HTTP认证(BASIC认证,DIGEST认证)的认证信息.若之前已经进行过一次请求,则表示用户认证失败. 返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部字段用以质询用户信息.当浏览器初次接收到401响应,会弹出认证用 的对话窗口.
403 Forbidden 表明服务器拒绝了请求.服务器可以在响应实体中描述拒绝原因(不必须). 通常为获得文件系统的访问授权,或访问权限出现某些问题(从未授权的发送源IP地址试图访问)等情况会发生403. 如果服务器拒绝请求又不想说明原因时可以使用404代替.
404 Not Found 服务器无法找到请求的URI.
####4. 5XX 服务器错误 500 Internal Server Error 服务器端在执行请求时发生错误.可能是Web应用存在bug或故障.
503 Service Unavailable 表明服务器暂时处于超负载或者正在进行停机维护,现在无法处理请求.503表示这是临时情况.如果事先得知解除以上情况需要的时间,可以写入 Retry-After首部字段返回给客户端.
参考:《图解HTTP》,RFC 2616