HTTP返回码总结
HTTP 协议状态码分类
HTTP 协议状态码表示的意思主要分为五类,大体如下:
- 1××:保留(信息性状态码)
- 2××:表示请求成功地接收(成功状态码)
- 3××:为完成请求客户需进一步细化请求(重定向状态码)
- 4××:客户错误(客户端错误状态码)
- 5××:服务器错误(服务器错误状态码)
1xx 信息性状态码
100 Continue
指示客户端应该继续请求。响应用于通知客户端此次请求已经收到,并且没有被服务器拒绝。客户端应该继续发送剩下的请求数据,或者请求已经完成,或者忽略响应数据。服务器必须在请求之后发送最终的响应。
101 Switching Protocols
服务器依照客户端请求,通过 Upgrade 头信息,改变当前连接的应用协议。服务器将根据 Upgrade 头立刻改变协议,在 101 响应以空行结束的时候。
2xx 成功状态码
200 OK
指示客户端的请求已经成功收到、解析并接受。
201 Created
请求已经完成,并且一个新的资源被创建。被创建的资源可能是一个 URI 资源,通常 URI 资源在 Location 头指定。响应应该包含一个实体数据,并且包含资源特性以及 Location,通过用户或者用户代理来选择合适的方法。实体数据格式通过媒体类型(Media Type)来指定,即 Content-Type 头。服务器必须在返回 201 状态码之前创建指定的资源。如果行为没有被立刻执行,服务器应该返回 202。
202 Accepted
请求已经被接受用来处理,但是处理并没有完成。请求可能或者根本没有遵照执行,因为处理在实际执行过程中可能被拒绝。
203 Non-Authoritative Information
服务器成功处理了请求,但返回的实体信息可能来自另一来源(如缓存或第三方),并非原始服务器的权威信息。
204 No Content
服务器已经接受请求并且没必要返回实体数据,可能需要返回更新信息。响应可能包含新的或更新信息,由 Entity-Headers 呈现。
205 Reset Content
服务器已经接受请求,并且用户代理应该重新设置文档视图(例如清空表单内容)。
206 Partial Content
服务器已经接受请求 GET 请求资源的部分。请求必须包含一个 Range 头信息以指示获取范围,可能必须包含 If-Range 头信息以成立请求条件。
3xx 重定向状态码
300 Multiple Choices
请求资源符合任何一个呈现方式,服务器无法确定首选项。
301 Moved Permanently
请求的资源已经被赋予一个新的 URI,今后应使用新的 URI。
302 Found
请求的资源临时从不同的 URI 响应请求(临时移动)。
303 See Other
响应状态码告诉客户端应该使用另一个 URI 来获取资源,通常用于 POST 操作后的重定向。
304 Not Modified
如果客户端已经完成一个有条件的请求并且请求是允许的,但是这个文档并没有改变,服务器应该返回 304 状态码。304 状态码一定不能包含信息主体,从而通常通过一个头字段后的第一个空行结束。
305 Use Proxy
请求的资源必须通过代理(由 Location 字段指定)来访问。Location 资源给出了代理的 URI。
306 Unused
该状态码未被使用。
307 Temporary Redirect
请求的资源临时从不同的 URI 响应请求,且请求方法不应改变(与 302 不同,307 严格保持方法不变)。
4xx 客户端错误状态码
400 Bad Request
因为错误的语法导致服务器无法理解请求信息。
401 Unauthorized
如果请求需要用户验证,响应应该包含一个 WWW-Authenticate 头字段用来指明请求资源的权限。
402 Payment Required
保留状态码,预留用于未来使用。
403 Forbidden
服务器接受请求,但是被拒绝处理(通常指权限不足)。
404 Not Found
服务器无法找到任何匹配 Request-URI 的资源。
405 Method Not Allowed
Request-Line 请求的方法不被允许通过指定的 URI。
406 Not Acceptable
服务器无法生成符合客户端 Accept 头要求的响应内容。
407 Proxy Authentication Required
类似于 401,但表示客户端必须先通过代理进行认证。
408 Request Timeout
客户端没有在服务器等待处理时间内提交任何请求。
409 Conflict
请求与资源当前的状态冲突,无法完成请求。
410 Gone
请求的资源在服务器上已不再可用,且不知道转发地址。
411 Length Required
服务器拒绝接受请求,因为没有定义 Content-Length 字段。
412 Precondition Failed
请求头中指定的一些前置条件(如 If-Match)在服务器上评估为失败。
413 Request Entity Too Large
服务器拒绝处理请求,因为请求数据超过服务器能够处理的范围。服务器可能关闭当前连接来阻止客户端继续请求。
414 Request-URI Too Long
服务器拒绝服务当前请求,因为 URI 的长度超过了服务器的解析范围。
415 Unsupported Media Type
服务器拒绝服务当前请求,因为请求数据格式并不被请求的资源支持。
416 Requested Range Not Satisfiable
服务器无法满足请求中指定的 Range 范围。
417 Expectation Failed
服务器无法满足 Expect 请求头字段中的期望。
5xx 服务器错误状态码
500 Internal Server Error
服务器遭遇异常,阻止了当前请求的执行。
501 Not Implemented
服务器没有相应的执行动作来完成当前请求(例如不支持该请求方法)。
502 Bad Gateway
服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable
因为临时过载或维护导致服务器不能处理当前请求。
504 Gateway Timeout
服务器作为网关或代理,未及时从上游服务器收到请求。
505 HTTP Version Not Supported
服务器不支持请求中所使用的 HTTP 协议版本。
说明
- 本文基于 HTTP/1.1 协议标准(RFC 7231 等)整理,部分状态码在不同版本或具体实现中可能存在细微差异。
- 文中“回送”已统一修正为现代术语“响应”,“客服端”修正为“客户端”,“煤体”修正为“媒体”。
- 306 状态码已废弃未使用;302 与 307 的区别在于是否允许改变请求方法。
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/http-fan-hui-ma-zong-jie.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。