概念

首先,我先分别引用下 维基百科MDNHTTP 状态码的理解。

HTTP 状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的 3 位数字代码。所有状态码被分为五类,状态码的第一个数字代表了响应的五种状态之一。

HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。


分类

HTTP 状态码可以分为如下 5 类:

分类 描述
1xx 请求已被接受,需要进一步处理,是临时响应
2xx 请求成功,操作被成功接受并处理
3xx 重定向,需要进一步处理
4xx 客户端错误
5xx 服务器错误

下面对于开发中常见的 HTTP 状态码,我将进行加粗表示。

1xx - 信息响应

状态码 英文名称 描述 cat
100 Continue 服务器已经接收到请求头,客户端应该继续请求。
101 Switching Protocol 协议切换,服务器根据客户端的请求切换协议。

2xx - 成功响应

状态码 英文名称 描述 cat
200 OK 请求已经成功。
201 Created 请求已经被成功处理,并且创建了新的资源。
202 Accepted 服务器端已经收到请求消息,但是尚未进行处理。
203 Non-Authoritative Information 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。
204 No Content 服务器成功处理了请求,没有返回任何内容。
205 Reset Content 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图。
206 Partial Content 服务器成功处理了部分GET请求。

3xx - 重定向

状态码 英文名称 描述 cat
300 Multiple Choices 该请求拥有多种可能的响应。
301 Moved Permanently 永久重定向。
302 Found 临时重定向。
303 See Other 重定向链接指向的不是新上传的资源,而是另外一个页面。
304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。
307 Temporary Redirect 临时重定向。与 302 相似,唯一区别在于,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化。
308 Permanent Redirect 请求和所有将来的请求应该使用另一个URI重复。

4xx - 客户端响应

状态码 英文名称 描述 cat
400 Bad Request 客户端请求的语法错误。
401 Unauthorized 当前请求需要用户验证。
403 Forbidden 服务器已经理解请求,但是拒绝授权访问。
404 Not Found 请求的资源(网页等)不存在。
405 Method Not Allowed 客户端请求中的方法被禁止。
406 Not Acceptable 服务器端无法提供与 Accept-Charset 以及 Accept-Language 消息头指定的值相匹配的响应。
407 Proxy Authentication Required 401 响应类似,只不过客户端必须在代理服务器上进行身份验证。
408 Request Timeout 请求超时。
409 Conflict 请求存在冲突无法处理该请求。
410 Gone 请求的目标资源在原服务器上不存在了,并且是永久性的丢失。
411 Length Required 缺少确定的Content-Length 首部字段,服务器拒绝客户端的请求。
412 Precondition Failed 客户端请求信息的先决条件错误。
413 Payload Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。
414 URI Too Long 请求的 url 过长。
415 Unsupported Media Type 对于当前请求的方法和所请求的资源,请求中提交的互联网媒体类型并不是服务器中所支持的格式,因此请求被拒绝。
416 Range Not Satisfiable 服务器无法处理所请求的数据区间。
417 Expectation Failed 服务器无法满足 Expect 的请求消息头。

5xx - 服务端响应

状态码 英文名称 描述 cat
500 Internal Server Error 服务器内部错误,无法完成请求。
501 Not Implemented 请求的方法不被服务器支持且无法被处理。
502 Bad Gateway 作为网关或代理角色的服务器,从远程服务器中接收到的响应是无效的。
503 Service Unavailable 服务器尚未处于可以接受请求的状态。
504 Gateway Timeout 充当网关或者代理的服务器无法在规定的时间内获得想要的响应。
505 HTTP Version Not Supported 服务器不支持请求所使用的 HTTP 版本。

参考链接

维基百科 - HTTP状态码

MDN - HTTP 响应代码

菜鸟教程 - HTTP状态码

HTTP Cats