⼀、HTTP状态码
HT T P 状态码( HT T P S t a t u s Co d e )是⽤来表示⽹⻚服务器超⽂本传输协议响应状态的 3 位数字代
码。它由 RFC 2 6 1 6 规范定义,并得到 RFC 2 5 1 8 、 RFC 2 8 1 7 、 RFC 2 2 9 5 、 RFC 2 7 7 4 与 RFC
4 9 1 8 等规范扩展。简单来说, HT T P 状态码是服务器告诉客户端当前请求响应的状态,通过状态码可以
判断和分析服务器的运⾏状态。
⼆、常⻅状态码
1xx - 信息类
1 x x状态码表示请求已被接受,需要继续处理。这类响应是临时响应,只包含状态⾏和某些可选的响应 头信息,并以空⾏结束。常⻅状态码有:
100 (继续):客户端继续发送请求,这是临时响应,⽤来通知客户端部分请求已经被服务
器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽
略这个响应。服务器必须在请求完成后向客户端发送⼀个最终响应。
101 (切换协议):服务器根据客户端的请求切换协议,主要⽤于 WebSock e t 或 HTTP/2 升
级
2xx - 成功类
2 x x状态码表示请求已成功被服务器接收、理解,并接受。常⻅状态码有:
200 (成功):请求已成功,请求所希望的响应头或数据体将随此响应返回。
201 (已创建):请求成功并且服务器创建了新的资源。
204 (⽆内容):服务器成功处理请求,但没有返回任何内容。
3xx - 重定向类
3 x x 状态码表示要完成请求,需要进⼀步操作。通常,这些状态代码⽤来重定向。常⻅状态码有:
301 (永久重定向):请求的⽹⻚已永久移动到新位置。服务器返回此响应时,会⾃动将请
求者转到新位置。
302 (临时重定向):服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位
置来进⾏以后的请求。
304 (未修改):服务器告诉客户端可以直接使⽤缓存的版本,⽆需重新请求。
307 (临时重定向):服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位
置来进⾏以后的请求。
4xx - 客户端错误类
4 x x 状态码代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理。常⻅状态码有:
400 (错误请求):服务器不理解请求的语法。
401 (未授权):请求要求身份验证。对于需要登录的⽹⻚,服务器可能返回此响应。
403 (禁⽌):服务器拒绝请求。
404 (未找到):服务器找不到请求的⽹⻚。
5xx - 服务器错误类
5 x x 状态码表示服务器⽆法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误
或者异常状态发⽣。常⻅状态码有:
500 (服务器内部错误):服务器遇到错误,⽆法完成请求。
502 (错误⽹关):服务器作为⽹关或代理,从上游服务器收到⽆效响应。
503 (服务不可⽤):服务器⽬前⽆法使⽤(由于超载或停机维护)。
三、适⽤场景
不同的状态码适⽤于不同的场景,下⾯给出⼀些常⻅的适⽤场景:
200 :表示请求成功,服务器正确处理了请求。
204 :表示服务器正确处理了请求,但没有返回任何内容,通常⽤于删除操作等。
301 :表示永久重定向,请求的资源已经被永久移动到新的位置。
400 :表示客户端请求错误,服务器⽆法理解请求的语法。
403 :表示请求被服务器拒绝,没有权限访问该资源。
404 :表示请求的资源不存在,服务器找不到请求的⽹⻚。
不同的状态码对应不同的请求处理情况,客户端可以根据状态码来判断请求是否成功,并做相应处理。