2xx 成功
200 OK
表示访问资源成功;
204 No Content
请求处理成功,但没有资源返回,或者说在返回的报文不含主体的主体部分。另外,也不允许返回任何实体的主体。一般在只需要从客户端向服务器发送资源,面对客户端不需要发送新信息内容的情况下使用;
206 Partial Content
表示访问部分资源成功。该状态码表明客户端向服务器进行了范围请求,且服务器成功处理了这个请求,响应报文中包含有Content-Range
指定范围的实体内容;
3xx 重定向
301 Moved Permanently
重定向 永久性重定向。该状态码表明请求的资源已被分配到新的uri上,以后应当使用新的uri对资源进行访问;
302 Found
临时性重定向。该状态码也表明请求的资源被分配到新的uri上,但与301的区别在于,这个更改是临时的,换言之,这个URI以后还会改变;
303 See Other
该状态码表明指定的资源还有另一个URI,应使用get方法定向获取资源,其与302的区别在于303明确要求客户端应采用GET方法获取资源,302虽然也可以做到,但303是最理想的,之所以这么说,是因为当301,302,303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动发送,但实际上301,302标准是禁止将POST方法改编成GET方法的,只有303标准允许这么做;
304 Not Modified
该状态码表明客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。这里的附带条件是指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodifided-Since
中任一首部;
307 Temporary Redirect
临时重定向 与307含义一致,区别在于307会遵照标准,不会从POST变成GET;
4XX 客户端错误
400 Bad Request
该状态码表示请求报文存在语法错误;
401 Unauthorized
该状态码表示发送的请求需要有通过HTTP认证的认证信息。另外若之前已进行过1次请求,返回此状态码则表示认证失败;
403 Forbidden
改状态码表示对资源的访问被服务器拒绝了。注意:标准并未要求服务端给出拒绝的详细理由,但如果想做出说明的话,可以在实体的主体部分对原因进行描述。其引发原因主要包括未获得文件系统的访问授权,访问权限出现某些问题;
404 Not Found
该状态码表示服务器上无法找到请求的资源。除此之外,在服务器拒绝访问且不想说明理由时也可以使用。
5XX 服务器错误
500 Internal Server Error
该状态码比表明服务器在执行请求时发生了错误。也有可能是web应用存在的BUG或某些临时的故障。
503 Service Unavailable
该状态码表明服务器暂时处于超负或正在进行停机维护,现在无法处理请求。如果实现的直接除以上需要的时间,最好写入RetryAfter首部字段再返回给客户端
注意:状态码和状况有时会不一致,不少返回的状态码响应都是错误的,但是用户可能觉察不到这点。比如web应用程序内部发生错误,状态码依然返回200 OK,这种情况也经常遇到。