响应码分类
4xx:客户端出现错误
- 400 Bad Request :服务器认为客户端出现了错误,但不能明确以下哪种错误时使用此错误码。例如HTTP请求格式错误
- 401 Unauthorized:用户认证信息缺失或者不正确,导致服务器无法处理请求
- 407 Proxy Authentication Required:对需要经由代理的请求,认证信息未通过代理服务器的验证
- 403 Forbidden:服务器理解请求的含义,但没有权限执行此请求
- 404 Not Found:服务器没有找到对应的资源
- 410 Gone:服务器没有找到对应的资源,且明确知道该位置永久性找不到该资源
- 405 Method Not Allowed:服务器不支持请求行中的method方法
- 406 Not Acceptable:对客户端指定的资源表述不存在(例如对语言或者编码有要求),服务器返回表述列表供客户端选择
- 408 Request Timeout:服务器接收请求超时
- 409 Conflict:资源冲突,例如上传文件时目标位置已经存在更新的资源
- 411 Length Required:如果请求含有包体且未携带 Content-Length 头部,且不属于 chunk (分块传输编码)类请求时,返回411
- 412 Precondition Failed:复用缓存时传递的 If-Unmodified-Since 或 If-None-Match 头部不被满足
- 413 Payload Too Large / Request Entity Too Large:请求的包体超出服务器能处理的最大长度
- 414 URI Too Long :请求的 URI 超出服务器能接受的最大长度
- 415 Unsupported Media Type:上传的文件类型不被服务器支持
- 416 Range Not Satisfiable:无法提供 Range 请求中指定的那段包体。例如文件只有100m,但是我们请求的1G-2G的文件内容。
- 417 Expection Failed:对于 Expect 请求头部期待的情况无法满足时的响应码
- 426 Upgrade Required:服务器拒绝基于当前 HTTP 协议提供服务,通过 Upgrade 头部告知客户端必须升级协议才能继续处理
- 428 Precondition Required:用户请求中缺失了条件头部,例如 If-Match
- 429 Too Many Request:客户端发起的请求速率过快
- 431 Request Header Fields Too Large:请求的 HEADER 头部大小超过限制
- 451 Unavailable For Legal Reasons:RFC7725,由于法律原因资源不可访问
5xx:服务器端出现错误
- 500 Internal Server Error:服务器内部出现错误,且不属于以下类型
- 501 Not Implemented:服务器不支持实现请求所需要的功能
- 502 Bad Gateway:代理服务器无法获取合法响应
- 503 Service Unavailable:服务器资源尚未准备好处理当前请求,例如服务器端做请求的限速,对用户IP做并发的连接的限制,当达到上限的时候都有可能发生
- 504 Gateway Timeout:代理服务器无法及时的从上游获得响应。(可能时代理服务器的超时时间设置的过小)
- 505 HTTP Version Not Supported:请求的HTTP协议版本不支持
- 507 Insufficient Storage:服务器没有足够的空间处理请求(但是已经暴漏服务器的内部问题,一般不会被我们看见)
- 508 Loop Detected:访问资源时检测到循环(循环已经到了最大的次数)
- 511 Network Authentication Required:代理服务器发现客户端需要进行身份验证才能获得网络访问权限,如机场,网吧常见到这样的场景
所有响应码遵循的响应规则:当客户端接收到了一个它不认识的响应码,不知道如何处理时,将按照他们所在系列的100,200,300,400,500的处理逻辑。