1xx 请求正被处理
2xx 请求成功处理
3xx 请求需要附加操作,常见的例子如重定向
4xx 客户端出错导致请求无法被处理
5xx 服务端处理出错
分类
2xx
200 请求成功。
201 Created 已创建。
请求成功,服务器正在创建请求的资源
202 Accepted 已接受。
服务器收到请求了,但是未处理
203 Non-Authoritative Information 非授权信息
服务器成功处理,但是返回的信息是另一个来源(即返回的meta信息不在原始的服务器,而是一个副本)
204 无内容。服务器成功处理,但未返回内容。
现在很常见的一种请求类型option
,通常被用来做正式请求的预请求,这个请求只需要确认后续的请求能不能通过,即只需要一个结果,而不需要返回其他内容,这类请求成功时就会返回204。
205 Reset Content 重置内容
服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content
字面意思:只返回了请求资源的部分。请求头会有一个Range属性
——表示范围请求,例如:
'Range':byte=5001-10000 // 表示本次要请求资源的5001-10000字节的部分
这种情况下,如果服务器接受范围请求并且成功处理,就会返回206
,并且在响应的头部返回
'Content-Range':bytes 5001-10000/10000 // 表示整个资源有10000字节,本次返回的范围为 5001-10000字节
3xx
301 Moved Permanently 永久移动
资源被永久重定向了,响应的头部字段Location
包括新的URI,浏览器会自动定向到新URI。以后访问也访问新的URL。
302 Found 临时移动
资源临时重定向了。和301的唯一区别就在于一个是临时,一个是永久,客户端应继续使用原有URI。
303 See Other 查看其它地址
查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改
资源未改变,可直接使用缓存。
这种响应一般是GET
请求中带有附加条件,例如请求头中含有if-Match,if-Modified-Since
等(if-Match
表示只请求带有特殊标记的资源,if-Modified-Since
表示请求指定时间后未变更的资源。
这种情况下,服务端不会返回响应主体,含义就是:”从你上次访问以来这个资源都没变过,直接使用你本地的缓存就行啦“。
305 Use Proxy 使用代理
所请求的资源必须通过代理访问
307 Temporary Redirect 临时重定向
临时重定向。与302类似。使用GET请求重定向
4xx
4xx表示一般是客户端发生了错误。
400 Bad Request
“对不起,你的请求中有语法错误”,那具体是什么语法错误呢? 答案是 —— 不一定,一般来说响应报文里会有一些提示,例如:
- 多加了个请求头
- url写错了
- 请求方法错了(post和get)
401 Unauthorized
字面意思:未经过认证。一般在后台系统之类的应用里,用户登录之后会获得一个身份认证信息,然后生成mac
之类的信息,放在请求头的Authorization
字段里,发送给服务端,如果这个认证信息有问题或者根本没发送,就会出现这个状态码。
402 Payment Required 保留,将来使用
403 Forbidden
禁止访问也就是无权限访问。至于具体为什么禁止,服务器可以在响应内容的实体部分给出,当然也可以不给
404 Not Found
服务端没有找到所请求的资源,一般这个错误是客户端的请求url写错。
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
5xx
5xx表明服务端发生了错误。
500 Internal Server Error
服务器故障了。
501 Not Implemented
服务器不支持请求的功能,无法完成请求
502 Bad Gateway
作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。实际上客户端有时候不是直接向服务器请求,这中间可能存在网关和代理。画个简单的图:
503 Service Unavailable
服务器暂时无法使用,可能是维护或者升级。
504 Gateway Timeout
作为网关或者代理工作的服务器访问超时。
505 HTTP Version not supported
服务器不支持请求的HTTP协议的版本,无法完成处理