赞
踩
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器 超文本传输协议响应状态的3位数字代码。
它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。
HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务端的处理是否正常、通知出现的错误等工作。
http状态码的由三位数字和原因短语组成,数字的第一位数字表示响应的类别,后面两位无类别。以下有五种类别。另外只要遵循状态码类别的定义,即使改变RFC2616中定义的状态码,或者服务端自行创建状态码都可以。
1XX
2XX
3XX
4XX
5XX
在RFC2616上的http状态码达到40多种,在加上WEBDAV和附加HTTP状态码(RFC6585)等扩展,就有60多种,但常用的有以下这些,接下来让我们分别来学习下。
(注:以下的使用场景只是举例,不包括所有使用场景)
1XX 是信息响应,表示接收的请求正在被处理。
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade
2XX 表示请求被正常处理了。
3XX响应结果表明浏览器需要执行某些特殊的处理以正确的处理请求。
响应结果:该状态码表示客户端发送附带条件的请求(指采用GET方法的请求报文中包含)时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体。304虽然在3xx类别中,但是和重定向没关系。
在最新版的规范中,306状态码已经不再被使用。
4XX的响应结果表明客户端是发生错误的原因所在。
-响应结果:表示发送的请求需要有通过HTTP认证的认证信息。另外若之前已进行过一次请求,则表示用户认证失败。返回含有401响应必须包含一个适用于被请求资源的WWW-Authenticate 首部用以质询用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。
如果服务器返回了这个错误状态码,那么消息体中应该包含所能提供的资源表现形式的列表,允许用户手动进行选择。
- //响应示例
- HTTP/1.1 407 Proxy Authentication Required
- Date: Wed, 21 Oct 2015 07:28:00 GMT
- Proxy-Authenticate: Basic realm="Access to internal site"
遇到这一错误状态码的时候,浏览器一般有两种策略:一种是终止操作,例如,一项中断的下载操作被认为是不可恢复的;另外一种是再次请求整个文件。
服务器会在响应中使用 Upgrade 首部来指定要求的协议。
//示例 HTTP/1.1 426 Upgrade Required Upgrade: HTTP/3.0 Connection: Upgrade Content-Length: 53 Content-Type: text/plain This service requires use of the HTTP/3.0 protocol
当一个条件首部的值不能匹配服务器端的状态的时候,应答的状态码应该是 412 Precondition Failed,前置条件验证失败。
表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。
//示例 HTTP/1.1 429 Too Many Requests Content-Type: text/html Retry-After: 3600
响应主体:表示由于请求中的首部字段的值过大,服务器拒绝接受客户端的请求。客户端可以在缩减首部字段的体积后再次发送请求。
应用场景:该响应码可以用于首部总体体积过大的情况,也可以用于单个首部体积过大的情况。
这种错误不应该出现于经过良好测试的投入使用的系统当中,而是更多出现于测试新系统的时候
<!-- 这个响应示例来自 IETF RFC 规范(见下文),其中提到了英国戏剧电影Monty Python's Life of Brian (《蒙提·派森之布莱恩的一生》)。 注意 Link 首部中可能会包含一个 rel="blocked-by" 字段,用于标明为该资源无法提供负责的主体,例如颁布法令将资源删除的个人或组织的名称。 --> HTTP/1.1 451 Unavailable For Legal Reasons Link: <https://spqr.example.org/legislatione>; rel="blocked-by" Content-Type: text/html <html> <head><title>Unavailable For Legal Reasons</title></head> <body> <h1>Unavailable For Legal Reasons</h1> <p>This request may not be serviced in the Roman Province of Judea due to the Lex Julia Majestatis, which disallows access to resources hosted on servers deemed to be operated by the People's Front of Judea.</p> </body> </html>
5XX 响应结果表明服务器本身发生错误。
响应结果:服务器错误响应码表示请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法(即不会返回这个状态码的方法)只有 GET 和 HEAD。
解决方法:你无法修复 501 错误,需要被访问的 web 服务器去修复该问题。
以上就是常见的一些状态码,如有不正确的地方,欢迎指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。