部分超文本传输?6?7?6?7协议 - HTTP/1.1
2616菲尔丁等。
10状态代码定义
每个状态代码如下所述,包括它可以按照描述的方法(S)和响应所需的任何元信息。
10.1信息1XX
这一类的状态代码表示临时的响应,只包含状态行和可选的头,和一个空行终止。有这种状态代码类无需头。由于HTTP/1.0没有定义任何1XX状态代码,服务器必须不除实验条件下发送到一个HTTP/1.0的客户端1XX响应。
客户端必须准备接受一个或多个1xx状态响应常规响应之前,即使客户端不指望一个100(继续)状态消息。意外1XX状态响应由用户代理可能会被忽略。
代理必须转发1xx响应,除非该代理及其客户之间的连接已关闭,或除非该代理本身要求代1XX响应。 (例如,如果一个
代理增加了一个“期望:100继续”字段,当它转发请求,那么它需要不提出相应的100(继续)响应(S))。
10.1.1 100继续
客户端应继续其请求。本中期的回应是用来通知客户端已收到请求的初始部分尚未被服务器拒绝。客户端应该继续发送请求的其余部分,或者如果请求已经完成,忽略此响应。服务器必须发送最终响应的请求后,已经完成。此状态代码的使用和处理的详细讨论,请参见8.2.3节。
10.1.2 101交换协议
服务器理解并愿意通过升级消息头域(14.42节)在此连接使用的应用协议的改变,以符合客户的要求。服务器将切换空行终止101响应后,立即响应的升级头字段定义的协议。
该议定书应切换,只有当它这样做是有利的。例如,切换到一个新的HTTP版本对老版本的优势,并交付使用等功能的资源时,切换到实时,同步协议可能是有利的。
1020成功2XX
这一类的状态代码表示客户端的请求被成功接收,理解,并接受。
10.2.1 200行
请求已成功。响应返回的信息是依赖于请求所使用的方法,例如:
一个实体的相应请求的资源在响应发送;
头实体头字段对应请求的资源发送响应没有任何消息体;
POST实体描述或包含的行动的结果;
跟踪包含高端服务器收到请求消息的实体。
10.2.2 201创建
请求已经完成,并导致正在创建一个新的资源。新创建的资源可以被引用返回响应实体中,与一个Location头字段资源最特定的URI,URI(S)。响应应该包括一个实体包含的资源特点和位置(S)用户或用户代理可以选择一个最合适的。实体格式指定Content - Type头字段中的媒体类型。源服务器返回201状态代码前必须创建资源。如果操作无法进行立即,202(已接受)响应,而不是服务器应。
201响应可能包含一个ETag响应头字段,表示为刚刚创建的要求变体的实体标记的当前值,请参阅第14.19节。
10.2.3 202接受
请求已经接受处理,但处理尚未完成。请求可能会或可能不会最终被付诸实施,因为它可能被禁止加工时实际发生的。没有重新发送状态代码从一个像这样的异步操作的设施。
202回应是故意不表态。其目的是让服务器接受其他一些过程,而不需要坚持,直到该进程完成,用户代理服务器连接到一个请求(也许是批量化的过程,只有每天运行一次)。与此响应返回的实体,应包括请求的当前状态的指示,无论是一个指针,指向一个状态监控或一些必须履行的请求时,用户可以期望的估计。
10.2.4 203非授权信息
在实体头返回的元信息是不明确的设置从源服务器,而是从本地或第三方复制收集。该设置可能是原始版本的一个子集或超集。例如,包括对本地资源的注释信息,可能会导致在源服务器的元信息的一个超集。使用这个响应代码是不是必需的,只有适当的响应,否则200(OK)。
10.2.5 204没有内容
服务器已经满足了要求,但并不需要返回一个实体体,并可能要返回更新的元信息。响应可能包括新的或更新的形式在实体报头,如果目前应与所要求的变种相关的元信息。
如果客户端是用户代理,它不应该改变其造成的请求发送的文档视图。这种反应主要是为了输入允许不造成改变用户代理的活动文档视图的情况下采取的行动的地方,虽然任何新的或更新的元信息应该被应用到文档,目前在用户代理的积极看法。
204响应必须不包括消息体,从而总是头字段后的第一个空行终止。
10.2.6 205重置内容
服务器已经完成了请求,用户代理应该重置文档视图造成请求发送。这种反应主要是为了让行动的投入,通过用户输入的地方,在其中输入,使用户可以轻松地启动另一个输入行动的形式结算。响应必须不包含实体。
10.2.7 206部分内容
服务器已经完成了对资源的部分GET请求。请求必须包含Range头域(14.35节),指示所需的范围,并可能包含一个If - Range头域(14.27节),要求有条件的。
响应必须包括以下的头字段:
- 无论是一个Content - Range头域(14.16节)
与此响应包含的范围,或一个multipart / byteranges
内容类型包括每个部分的内容范围领域。如果一个
Content - Length头字段是在响应中出现,其
值必须符合在传输的字节的实际数量
消息体。
- 日期
- ETag的和/或内容位置,如果头已被送往
在一个200响应了同样的要求
- 期满后,高速缓存控制和/或更改,如果字段值可能
从以往任何响应发送的相同不同
变种
如果206响应是一个使用了强大的缓存验证(见第13.3.3节)如果范围请求的结果,响应不应包括其他实体头。如果响应是一个范围,如果要求使用弱验证的结果,响应必须不包括其他实体头,这样可以防止缓存的实体机构和更新头之间的不一致。否则,回应必须包括所有的实体头会返回一个200(OK)回应了同样的要求。
一个高速缓存必须不能结合一个206响应与其他以前缓存的内容,如果不完全匹配的ETag或Last - Modified头,见13.5.4。
一个高速缓存,不支持的范围和内容范围头不能缓存206(部分)的反应。
10.3重定向3XX
这一类的状态代码表示需要由用户代理以履行请求采取进一步的行动。需要采取的行动可能是没有与用户的交互进行,当且仅当在第二个请求所使用的方法是GET或HEAD由用户代理。客户应检测无限重定向循环,因为这种循环产生每个重定向的网络流量。
注:本规范的以前版本的建议
最大的五个重定向。内容开发者应该知道
有可能实现这样一个固定的客户
限制。
10.3.1 300多个选择
正在提供所要求的资源对应的意见书设置的任何一个,每个都有自己的具体位置,和代理驱动谈判信息(第12条),从而使用户(或用户代理)可以选择一个首选的代表性和重定向其要求该位置。
除非它是一个HEAD请求,响应应该包括一个实体包含的资源特点和位置(S)用户或用户代理可以选择一个最合适的。实体格式指定Content - Type头字段中的媒体类型。根据不同的格式和功能
可以自动执行用户代理,选择最合适的选择。然而,本规范没有定义任何这种自动选择的标准。
如果服务器有首选的代表性,它应该包括特定的URI,在“位置”字段的表述;用户代理可以使用自动重定向的位置字段值。除非另有说明,这种反应是缓存。
10.3.2 301永久移动
请求的资源已被分配一个新的永久性的URI和此资源的任何未来的参考文献应使用返回的URI之一。链接编辑功能的客户端应该自动重新连接请求URI引用一个或多个新引用由服务器返回,在可能的情况下。除非另有说明,这种反应是缓存。
新的常任理事国应该得到的URI响应“位置”字段。除非请求方法是HEAD,响应实体应该包含一个新的URI(S)的超链接一个简短的超文本的注意。
如果301状态代码是在收到的响应比GET或HEAD请求,用户代理必须不能自动重定向请求,除非它可以由用户确认,因为这可能会发生变化的条件下发出请求。
注意:当自动重定向POST请求后
收到一个301状态代码,一些现有的HTTP/1.0用户代理
错误地将它转变成一个GET请求。
10.3.3 302发现
暂时下一个不同的URI请求的资源所在。由于重定向可能会改变有时,客户端应继续使用为将来的请求的Request - URI。这种反应是只缓存的,如果由一个Cache - Control或Expires头域。
临时的URI应该得到响应的“位置”字段。除非请求方法是HEAD,响应实体应该包含一个新的URI(S)的超链接一个简短的超文本的注意。
如果302状态代码是在收到的响应比GET或HEAD请求,用户代理必须不能自动重定向请求,除非它可以由用户确认,因为这可能会发生变化的条件下发出请求。
注意:RFC 1945和RFC 2068中指定的客户端是不允许的
改变重定向请求的方法。然而,大多数
现有的用户代理的实现治疗302,如果它是一个303
响应,执行域值的位置上,无论
原始请求方法。状态代码303和307有
被添加的服务器上,想明确无误地告诫
这种反应是预期的客户端。
10.3.4 303参见其它
下可以找到一个不同的URI请求的响应,应该检索该资源的使用GET方法。这种方法主要存在允许后的激活脚本的输出重定向用户代理到选定的资源。新的URI不是一个取代原先要求的资源参考。 303响应必须不被缓存,但第二(繁体)请求的响应可能会缓存的。
应给予不同的URI响应“位置”字段。除非请求方法是HEAD,响应实体应该包含一个新的URI(S)的超链接一个简短的超文本的注意。
注意:许多pre-HTTP/1.1用户代理不明白303
状态。当与这些客户的互操作性是一个令人关注的问题,
302状态代码,可以用来代替,因为大多数用户代理的反应
为303到302响应。
10.3.5 304不修改
如果客户端执行一个条件GET请求和访问是允许的,但文件已不被修改,服务器应响应此状态代码。 304响应必须不包含消息体,从而总是头字段后的第一个空行终止。
响应必须包括以下的头字段:
- 日期,除非它的遗漏是第14.18.1规定
如果一个无时钟源服务器遵循这些规则,并代理和客户自己的日期没有收到任何答复([RFC 2068]第14.19),高速缓存将正常运行。
- ETag的和/或内容位置,如果头已被送往
在一个200响应了同样的要求
- 期满后,高速缓存控制和/或更改,如果字段值可能
从以往任何响应发送的相同不同
变种
如果有条件的习惯强大的缓存验证(见第13.3.3节),响应不应包括其他实体头。否则(即,有条件的习惯弱验证器),响应必须不包括其他实体头,这样可以防止缓存的实体机构和更新头之间的不一致。
如果304响应表示当前缓存的实体,那么缓存必须忽略的回应,并重复请求没有条件。
如果高速缓存使用收到304响应更新缓存条目,缓存必须更新条目,以反映任何新的领域,在响应给定值。
10.3.6 305使用代理
访问请求的资源必须通过“位置”字段的代理。 “位置”字段给出了代理的URI。预计收件人重复这个单个请求通过代理。必须仅305反应产生的原始服务器。
注:RFC 2068中并不清楚,305重定向
单个请求,仅由原始服务器产生。不
遵守这些限制有显著的安全后果。
10.3.7 306(未使用)
306状态代码是在以前版本的规范使用,不再使用,并保留代码。
10.3.8 307临时重定向
暂时下一个不同的URI请求的资源所在。由于重定向,有时可能会在改变,客户端应继续使用为将来的请求的Request - URI。这种反应是只缓存的,如果由一个Cache - Control或Expires头域。
临时的URI应该得到响应的“位置”字段。除非请求方法是HEAD,响应实体应该包含到新的URI(S)的超链接一个简短的超文本注意,因为许多pre-HTTP/1.1用户代理不明白的307状态。因此,应注意包含必要的资料,为用户重复新的URI的原始请求。
如果收到307状态码响应比GET或HEAD请求,用户代理必须不能自动重定向请求,除非它可以由用户确认,因为这可能会发生变化的条件下发出请求。
10.4客户端错误4XX
状态码4XX类是用于案件中,客户端似乎出现了偏差。除响应HEAD请求时,服务器应包括一个实体包含一个错误情况的解释,无论是暂时或永久的条件。这些状态码适用于任何请求方法。用户端应该显示给用户任何包含实体。
如果客户端发送数据时,使用TCP服务器实?6?7?6?7施应谨慎,以确保客户端确认收到响应数据包(S),在服务器关闭前的输入连接。如果客户端继续收盘后的数据发送到服务器,服务器的TCP协议栈将重置数据包发送到客户端,这可能会删除客户端的不为人知的输入缓冲器,才由HTTP应用程序可以读取和解释。
10.4.1 400错误的请求
请求不能被理解服务器因语法错误。客户端不应重复不加修改的要求。
10.4.2 401未经授权
请求需要用户认证。响应必须包含一个WWW - Authenticate头域(14.47节),其中包含适用于所请求的资源的一个挑战。客户端可能会重复一个合适的Authorization头域(14.8节)的请求。如果请求已经包含了授权证书,那么401响应表示已经授权拒绝这些凭据。如果401响应包含同样的挑战,作为前响应用户代理已经尝试认证至少一次,那么用户应该提出这是在响应给定的实体,因为该实体可能包括有关的诊断信息。 HTTP访问认证是解释“HTTP验证:基本和摘要访问认证”[43]。
10.4.3 402付款所需
此代码是为将来使用保留。
10.4.4 403禁止访问
服务器可以理解的要求,但拒不履行。授权并不会帮助和请求不应重复。如果请求的方法是不是头部和服务器希望使公众为什么要求没有得到满足,它应该描述为实体拒绝的原因。如果服务器不希望这方面的资料提供给客户,状态代码404(未找到)可以用来代替。
10.4.5 404未找?6?7?6?7到
服务器还没有找到任何匹配的Request - URI。没有迹象表明是给定的条件是否是暂时的还是永久的。服务器是否知道,通过一些内部配置机制,旧的资源是永久不可用,并没有转发地址,应该使用410(消失)状态代码。这个状态码是常用的服务器时不希望透露究竟为何请求被拒绝,或当没有其他的反应是适用的。
10.4.6 405不允许的方法
在Request - Line中指定的方法是不允许的请求URI标识的资源。响应必须包括一个Allo?6?7?6?7w头包含请求的资源的有效方法列表。
10.4.7 406不接受
请求标识的资源是唯一能够产生不能接受的内容特点,根据接受请求中发送的头的响应实体的。
除非它是一个HEAD请求,响应应该包括一个实体包含一个可用的实体特征和位置(S)用户或用户代理可以选择一个最合适的列表。实体格式指定Content - Type头字段中的媒体类型。根据不同的格式和用户代理的能力,选择最合适的选择,可自动进行。然而,本规范没有定义任何这种自动选择的标准。
注:HTTP/1.1服务器允许返回响应是
根据接受在发送了头不能接受
请求。在某些情况下,这甚至可能是最好发送
406响应。鼓励用户代理检查的头
传入的?6?7?6?7反应,以确定它是否是可以接受的。
如果反应是不可接受的,应暂时停止用户代理收到更多的数据和查询用户进一步行动的决定。
10.4.8 407需要代理身份验证
此代码是401(未授权)类似,但表示,客户端必须首先验证代理。代理必须返回一个Proxy - Authenticate头域(14.33节),其中包含适用于请求的资源代理的一个挑战。客户端可能会重复请求一个合适的Proxy - Authorization头域(14.34节)。 HTTP访问认证是解释“HTTP验证:基本和摘要访问认证”[43]。
10.4.9 408请求超时
客户端没有服务器准备等待的时间内产生的请求。客户端可能没有在以后的任何时间修改重复请求。
10.4.10 409冲突
由于资源的当前状态冲突,请求无法完成。预计用户可能能够解决冲突,并重新提交请求的情况下只允许在此代码。响应主体应包括足够的
为用户的信息来确认冲突的根源。在理想的情况下,响应实体将包括足够的信息,为用户或用户代理来解决这个问题;然而,这可能不会是可能的,是不是必需的。
冲突最有可能发生在PUT请求。例如,如果版本被用来把实体资源的变化,冲突,这与那些由较早(第三方)请求,服务器可能会使用409响应,以表明它无法完成请求。在这种情况下,响应实体可能会包含的响应内容类型定义的格式两个版本之间的差异的列表。
10.4.11 410飘
请求的资源不再是在服务器上可用,并没有转发地址是已知的。预计这种情况被认为是永久的。链接编辑功能的客户端应该删除Request - URI的用户批准后引用。如果服务器不知道,或没有确定的条件,不论是否是永久性的设施,状态代码404(未找到)应改为使用。除非另有说明,这种反应是缓存。
410响应主要是为了协助通知收件人,资源是故意不可用服务器业主的愿望,删除该资源的远程链接的网站维护任务。这样的事件是很常见的时间有限,推广服务和资源属于个人不再在服务器的现场工作。这是没有必要的,以纪念“水涨船高”,或保持该商标的任何时间的长短的所有永久不可用的资源 - 这是留给服务器所有者的自由裁量权。
10.4.12 411必需的长度
服务器拒绝接受请求没有定义的内容长度。客户端可能会重复请求,如果它增加了一个有效的Content - Length头字段包含在请求消息的消息体的长度。
10.4.13 412前提条件失败
在一个或多个评估为false时,它是在服务器上测试请求头字段的前提条件。此响应码允许客户替换当前资源(头字段数据)的先决条件,从而防止请求的方法被应用到比预期的资源。
10.4.14 413请求实体过大
服务器拒绝处理请求,因为请求实体超过了服务器愿意或能够处理较大。服务器可能会关闭连接,以防止继续请求的客户端。
如果这种现象是暂时的,服务器应当包含一个头字段后重试“,以表明它是暂时的,客户端后,什么时候可能会再次尝试。
10.4.15 414请求URI太长
服务器拒绝服务请求,因为Request - URI中长于服务器愿意解释。这种罕见的情况是可能发生当一个客户端错误地转换POST请求与长查询信息,已经下降到一个URI“黑洞”的重定向(例如,当客户端重定向的URI前缀指向的GET请求其自身的后缀),或当服务器正在试图利用安全漏洞存在于一些使用固定长度缓冲区读取或篡改Request - URI的服务器的客户端攻击。
10.4.16 415不支持的媒体类型
服务器拒绝服务请求,因为请求实体请求的资源请求的方法不支持的格式是。
10.4.17 416请求范围不符合
服务器应该返回此状态代码的响应,如果请求中包含一个Range请求头域(14.35节),并没有在这一领域的范围符值重叠,目前选定资源的程度,并请求没有包括如果范围请求标头字段。 (字节范围,这意味着第一字节- POS的所有字节范围规范值均大于选定资源的当前长度。)
当此状态代码返回一个字节范围的要求,响应应该包括一个实体头域的内容范围,指定所选资源的当前长度(见第14.16节)。这种反应,绝不能使用的内容类型的multipart / byteranges。
18年4月10日417期望失败
在一个给定的期望,希望此服务器不能满足请求标头字段(见第14.20节),或者,如果服务器是代理服务器有确凿证据的要求不能被满足下一跳服务器。
10.5服务器错误5XX
响应状态码与数字“10”开头,表明在该服务器是知道,它已经是错误的或无法执行请求的情况下。除响应HEAD请求时,服务器应包括一个实体包含一个错误情况的解释,无论是暂时或永久的条件。用户端应该显示给用户任何包含实体。这些响应代码,适用于任何请求方法。
10.5.1 500内部服务器错误
服务器遇到意外情况无法履行请求。
10.5.2 501未实现
服务器不支持,以履行请求所需的功能。这是适当的反应,当服务器无法识别请求方法,是不能够支持它的任何资源。
10.5.3 502坏网关
服务器作为网关或代理的同时,它在试图完成请求访问的上游服务器收到无效响应。
10.5.4 503服务不可用
服务器目前无法处理请求,因暂时超载或服务器维护。言下之意是,这是一个临时的状况,这将缓解一些延误后。如果知道,延迟的长度,可以表明一个Retry - After头。如果没有之后重试,客户端应该处理的响应,因为它会为一个500响应。
注意:503状态代码的存在并不意味着,
服务器必须使用它成为重载时。有些服务器可能希望
简单地拒绝连接。
10.5.5 504网关超时
,同时作为网关或代理服务器,没有收到及时响应从上游服务器指定的URI(如HTTP,FTP,LDAP)或其他一些辅助服务器(如DNS),它需要在试图完成访问请求。
注意:请注意对实现:一些部署代理已知
返回400或500时,DNS查找超时。
10.5.6 505 HTTP版本不支持
服务器不支持或不支持,在请求消息中使用的HTTP协议版本。服务器表明它是不能或不愿完成的要求,使用相同的主要版本客户端,如3.1节所述,此错误消息以外。响应应该包含一个实体,说明为什么该版本是不支持什么其他的协议是由服务器支持。