10状态代码定义缓存
每一个状态码描述以下,其中描述的方法(S)能够遵循和响应所需的任何信息。安全
10.1信息1xx服务器
此类状态码表示临时响应,仅由状态行和可选标头组成,并由空行终止。这类状态码没有必需的头文件。因为HTTP / 1没有定义任何1xx状态码,服务器不能发送一个HTTP 1客户端1xx响应除了在实验条件。网络
客户端必须准备接受一个或多个1xx状态响应的一种常规响应以前,即便客户不期望100(继续)状态信息。意外的1xx状态响应能够由一个用户代理忽略。异步
代理人必须向前1xx响应,除非代理和客户端之间的链接已关闭,或除非代理自己要求的一代1xx响应。(例如,若是工具
代理在转发请求时添加一个“指望值:100”字段,而后它不须要转发相应的100(继续)响应。测试
10.1.1 100继续网站
客户机应继续其请求。此临时响应用于通知客户机已收到请求的初始部分,还没有被服务器拒绝。客户端应该继续发送请求的剩余部分,或者,若是请求已经完成,则忽略此响应。服务器必须在请求完成后发送最终响应。看到的使用做了详细的讨论与此状态代码处理8.2.3节。代理
10.1.2 101交换协议版本控制
服务器理解并愿意听从客户端的请求,经过升级消息头字段(第14.42节),以更改在该链接上使用的应用程序协议。服务器将在终止101响应的空行以后当即将协议转换为响应的升级头字段定义的协议。
只有在有利于这样作的状况下,才应该交换协议。例如,切换到较新版本的HTTP对旧版本有利,在交付使用这些特性的资源时,切换到实时同步协议多是有利的。
10.2成功的2xx
这类状态代码代表客户的请求被成功地接收、理解和接受。
10.2.1 200 OK
请求成功了。响应返回的信息依赖于请求中使用的方法,例如:
获取响应请求中发送的与请求资源相对应的实体;
头与请求的资源相对应的实体头字段在响应中发送,没有任何消息体;
张贴描述或包含行动结果的实体;
跟踪包含端服务器接收的请求消息的实体。
10.2.2 201建立
请求已经完成,并建立了一个新资源。新建立的资源能够由响应实体中返回的URI引用,其中位置标头字段提供的资源具备最具体的URI。响应应该包括一个实体,其中包含一个资源特性列表和位置,用户或用户代理能够从中选择最合适的一个。实体格式是由内容类型头字段中指定的媒体类型指定的。在返回201状态码以前,源服务器必须建立资源。若是不能当即执行该操做,则服务器应以202(接受)响应代替。
201响应可能包含ETag响应头域表示的变体标签实体的要求为刚刚建立的电流值,见14.19节。
10.2.3 202接受
请求已接受处理,但处理还没有完成。请求可能会或可能不会最终将采起行动,由于它多是不容许在处理实际发生。没有从异步操做中从新发送状态码的工具,如。
202回应是故意不表态。它的目的是容许服务器接受对其余进程的请求(多是只面向一天运行一次的批处理过程),而不要求用户代理与服务器的链接一直存在,直到过程完成。返回此响应的实体应该包括请求当前状态的指示,或者指向状态监视器的指针,或者用户什么时候能够知足请求的一些估计。
10.2.4 203非权威信息
在实体报头返回的元信息是不明确的设置为从源服务器,而是从本地或第三方复制汇集。设置可能被提出的子集或超集的原始版本。例如,包括对资源的地方标注信息可能会致使由原始服务器称为元信息的一个超集。使用此响应代码是不须要的,只有在响应为200时才合适(OK)。
10.2.5 204无内容
服务器已经完成了请求,但不须要返回一个实体,而且但愿返回更新的元信息。响应可能包括新的或更新的形式在实体头信息,若是存在,应与请求的变量相关联。
若是客户端是一个用户代理,它不该该改变它的文档视图,从而致使发送请求。这种反应主要是为了让行动不会致使改变用户代理的活动文档视图发生输入,但任何新的或更新的信息应该被应用到文档中的用户代理的积极见解。
204个响应不能包含消息体,所以老是在头字段以后的第一个空行终止。
版本205内容复位
服务器已经完成了请求,用户代理应该重置文档视图,从而致使请求被发送。此响应主要是为了容许经过用户输入进行操做的输入,随后输入输入的表单,以便用户能够容易地启动另外一个输入操做。响应不能包含实体。
10.2.7 206部份内容
服务器完成了资源的部分GET请求。请求必须包含一个范围标头字段(第14.35节),指示指望的范围,而且可能包括一个if范围标头字段(第14.27节),使请求有条件。
响应必须包括如下头字段:
-表示内容范围标头字段(第14.16节)
范围包括与此响应,或多重/ byteranges
内容类型,包括每一个部分的内容范围字段。若是一个
内容长度头字段存在于响应中,其
值必须匹配发送的字节的实际数量
消息体。
-日期
- ETag和/或内容位置,若是头文件已发送
在对同一请求的200响应中
-若是字段值可能,过时、缓存控制和/或更改
与之前对同一响应的发送不一样
变体
若是206响应是一个结果,若是范围要求用强缓存验证(见第13.3.3),响应不该包括其余实体头。若是反应是一个结果,若是范围要求用弱验证器,响应必须不包括其余实体头;这样能够防止缓存之间的实体机构和更新的标题不一致。不然,响应必须包含全部的实体标头,这些标头都将返回对同一请求的200(OK)响应。
缓存不能结合206响应缓存的内容若是与其余先前的ETag或最后修改标题不彻底匹配,看到13.5.4。
不支持范围和内容范围标头的缓存不能缓存206(部分)响应。
10.3重定向3xx
这类状态码代表,为了知足请求,用户代理须要采起进一步的操做。所需的动做能够由用户代理进行,而没必要与用户交互,且仅当第二个请求中使用的方法是get或头时。客户机应该检测无限重定向循环,由于这样的循环为每一个重定向生成网络流量。
注意:本规范的前一版本建议
五重定向的最大。内容开发人员应该知道
可能有客户实现了这样一个固定的
限制。
10.3.1 300多种选择
所请求的资源对应于一组表示的任何一个,每个都有其本身的特定位置,而且正在提供代理驱动的协商信息(第12节),以便用户(或用户代理)能够选择一个优选表示并将其请求重定向到该位置。
除非是头请求,响应应该包含一个实体,其中包含一个资源特性列表和位置,用户或用户代理能够选择最合适的位置。实体格式是由内容类型头字段中给定的媒体类型指定的。取决于格式和功能
能够自动执行用户代理,选择最合适的选择。可是,该规范没有定义此类自动选择的任何标准。
若是服务器具备首选的表示方式,则应该包含该位置字段中该表示的特定URI;用户代理可使用位置字段值进行自动重定向。这个响应是可缓存的除非另有说明。
10.3.2 301永久移动
被请求的资源已经被分配了一个新的URI和任何将来的资源引用到这应该用一个返回的URI。具备连接编辑功能的客户端应该自动将请求URI的引用从新连接到服务器返回的一个或多个引用,若是可能的话。这个响应是可缓存的除非另有说明。
新的永久URI应该由响应中的位置字段给出。除非请求方法为头,不然响应的实体应该包含一个超文本超文本注释,并带有新URI的超连接。
若是响应了GET或头部之外的请求而接收到301状态码,则用户代理不能自动重定向请求,除非用户能够确认它,由于这可能会更改发出请求的条件。
注意:当自动重定向POST请求后
接收到301状态码,一些现有的HTTP / 1用户代理
将错误地将其更改成GET请求。
10.3.3 302发现
请求的资源暂时驻留在不一样的URI下。因为重定向有时可能被更改,客户机应该继续使用请求URI来知足未来的请求。这种反应只缓存若是表示缓存控制或Expires头域。
临时URI应该由响应中的位置字段给出。除非请求方法为头,不然响应的实体应该包含一个超文本超文本注释,并带有新URI的超连接。
若是响应了GET或头部之外的请求而接收到302状态码,则用户代理不能自动重定向请求,除非用户能够确认它,由于这可能会更改发出请求的条件。
注意:RFC 1945和RFC 2068指定不容许客户端。
更改重定向请求的方法。然而,最
现有的用户代理实现将302视为303。
响应,在位置字段值上执行get,无论
对原始请求的方法。状态码303和307
为但愿明确说明的服务器添加
客户须要某种反应。
10.3.4 303看其余
对请求的响应能够在不一样的URI下找到,应该使用该资源上的get方法检索。此方法主要存在于容许激活后脚本将用户代理重定向到选定资源。新URI不是原始请求资源的替代引用。303响应必须不被缓存,但反应到二(重定向)的要求多是缓存。
响应中的位置字段应该给出不一样的URI。除非请求方法为头,不然响应的实体应该包含一个超文本超文本注释,并带有新URI的超连接。
注意:许多HTTP / 1.1用户代理不理解303。
现状。当与此类客户机的互操做性受到关注时,
可使用302状态码,由于大多数用户代理都会做出反应。
到302的响应,这里描述的是303。
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下。因为重定向有时可能被更改,客户机应该继续使用请求URI来知足未来的请求。这种反应只缓存若是表示缓存控制或Expires头域。
临时URI应该由响应中的位置字段给出。除非请求方法为头,不然响应的实体应该包含一个超连接的超文本注释,该连接具备新的URI的超连接,由于许多前HTTP / 1.1用户代理不理解307状态。所以,注释应该包含用户在新URI上重复原始请求所必需的信息。
若是响应了GET或头部之外的请求而接收到307状态码,则用户代理不能自动重定向请求,除非用户能够确认它,由于这可能会更改发出请求的条件。
10.4 4客户端错误
状态代码4xx类为例,客户彷佛有错。除了对头请求做出响应外,服务器应该包含一个包含错误状况解释的实体,以及它是不是临时的或永久的条件。这些状态码适用于任何请求方法。用户代理应该向用户显示任何包含的实体。
若是客户机正在发送数据,使用TCP的服务器实现应该当心,以确保在服务器关闭输入链接以前,客户机确认接收包含响应的数据包。若是客户端继续发送数据到服务器后,服务器的TCP协议栈将发送一个重置数据包到客户端,从而才能阅读和HTTP应用解释删除客户端的未确认的输入缓冲器。
10.4.1 400错误的请求
因为语法错误,服务器没法理解请求。客户机不该在不修改的状况下重复请求。
10.4.2 401未经受权
该请求须要用户身份验证。响应必须包含一个WWW验证头字段(第14.47节),其中包含适用于所请求资源的挑战。客户端能够用适当的受权头字段重复请求(第14.8节)。若是请求已包含受权凭据,则401响应表示已拒绝这些凭据的受权。若是401响应包含与前面的响应相同的挑战,而且用户代理至少已经尝试过一次身份验证,那么应该向用户展现响应中给出的实体,由于该实体可能包含相关的诊断信息。HTTP访问验证在“HTTP认证:基本和摘要访问验证”中解释(43)。
10.4.3 402付款要求
此代码保留以备未来使用。
10.4.4没有权限访问此网站
服务器理解了请求,但拒绝履行它。受权无效,请求不该重复。若是请求方法不是头,服务器但愿公开为何请求没有完成,它应该描述实体拒绝的缘由。若是服务器不但愿将此信息提供给客户机,则可使用状态码404(未找到)。
10.4.5 404未找到
服务器没有找到与请求URI匹配的任何内容。没有迹象代表这种状况是暂时性的仍是永久性的。若是服务器经过某种内部可配置的机制知道旧资源是永久不可用且没有转发地址的,则应该使用410(离开)状态代码。当服务器不但愿确切地揭示拒绝请求的缘由,或者没有其余响应时,一般使用这种状态代码。
10.4.6 405法不容许
请求行中指定的方法不容许由请求URI标识的资源。响应必须包含一个容许标头,其中包含所请求资源的有效方法列表。
406不接受单独
由请求标识的资源仅可以生成响应实体,这些内容具备不能根据请求中发送的接收头接受的内容特征。
除非是头请求,响应应包括一个实体,其中包含可用实体特性和位置的列表,用户或用户代理能够从中选择最合适的一个实体。实体格式是由内容类型头字段中指定的媒体类型指定的。根据用户代理的格式和功能,能够选择自动执行最合适的选择。可是,该规范没有定义此类自动选择的任何标准。
注意:容许HTTP / 1.1服务器返回响应
根据接收到的接收头不能接受
请求。在某些状况下,这甚至比发送一个
406响应。鼓励用户代理检查
输入响应以肯定是否可接受。
若是响应是不可接受的,用户代理应该暂时中止接收更多数据,并查询用户对进一步行动的决定。
10.4.8 407代理服务器要求身份验证
此代码相似于401(未经受权),但表示客户端必须首先用代理进行身份验证。代理必须返回一个代理验证头字段(第14.33节),其中包含适用于请求资源代理的挑战。客户机可使用适当的代理受权头字段重复请求(第14.34节)。HTTP访问验证在“HTTP认证:基本和摘要访问验证”中解释(43)。
10.4.9 408请求超时
客户机在服务器准备等待的时间内没有生成请求。客户能够在不修改的状况下重复请求。
10.4.10 409冲突
因为与资源的当前状态发生冲突,请求没法完成。此代码只容许的状况下,预计用户可能可以解决冲突和从新提交请求。响应主体应包括足够
用户识别冲突源的信息。理想状况下,响应实体将包含足够的信息以供用户或用户代理解决问题;然而,这多是不可能的,也不是必需的。
冲突最有可能发生在对提交请求的响应中。例如,若是正在使用版本控制,而且实体被包含到与早期(第三方)请求所产生的资源发生冲突的地方,那么服务器可能会使用409响应来指示它不能完成请求。在这种状况下,响应实体可能包含一个由响应内容类型定义的格式的两个版本之间的差别列表。
10.4.11 410了
请求的资源在服务器上再也不可用,而且没有已知的转发地址。这种状况预计将被视为永久性的。具备连接编辑功能的客户端应该在用户批准后删除对请求URI的引用。若是服务器不知道,或者没有肯定的条件,条件是不是永久的,则应该使用状态码404(未找到)。这个响应是可缓存的除非另有说明。
410个响应主要是为了帮助Web维护的任务,通知接收方资源是不可用的,服务器全部者但愿删除该资源的远程连接。这样的事件在有限的时间、促销服务和属于再也不在服务器站点工做的我的的资源中是常见的。没有必要将全部永久不可用资源标记为“消失”或保留任什么时候间的标记——这是由服务器全部者自行决定的。
10.4.12 411长度要求
服务器拒绝接受没有定义内容长度的请求。若是在请求消息中添加一个包含消息主体长度的有效内容长度头字段,客户机能够重复请求。
10.4.13 412前提条件失败
在服务器上进行测试时,一个或多个请求头字段中给出的前提条件被评估为false。此响应代码容许客户在条件对当前资源元信息(标题字段数据),从而防止所请求的方法被应用到比预期的另一个资源。
10.4.14 413请求实体太大
服务器拒绝处理请求,由于请求实体比服务器愿意或可以处理的要大。服务器能够关闭链接以防止客户端继续请求。
若是条件是临时的,服务器应该包含一个重试头字段来指示它是临时的,在客户端重试以后。
10.4.15 414请求URI太长
服务器拒绝服务请求,由于请求URI比服务器愿意解释的时间长。这种罕见的状况只可能发生在客户端不当将POST请求转换到一个GET长查询信息,当客户进入一个URI的“黑洞”的重定向(例如,重定向的URI前缀指向自己的后缀),或者当服务器经过客户端试图利用安全漏洞使用固定长度的缓冲区读或操纵请求一些服务器目前的攻击下。
10.4.16 415不支持的媒体类型
服务器拒绝提供请求,由于请求的实体是所请求的资源不支持所请求方法的格式。
10.4.17 416请求范围不知足
若是一个请求的服务器应该包含一系列请求标头字段返回此状态码的响应(14.35节),没有一个范围说明符值在这一领域的重叠选定当前资源的程度,并要求不包括若是范围请求标头字段。(对于字节范围,这意味着全部字节范围规范值的第一个字节的POS数大于所选资源的当前长度。)
当返回一个字节范围请求的状态代码时,响应应该包括一个内容范围实体头字段,指定选定资源的当前长度(参见第14.16节)。这种反应不是必须使用多重/ byteranges内容类型。
10.4.18 417期待失败
在指望的请求头字段(见第14.20部分)中给出的指望不能被该服务器知足,或者,若是服务器是一个代理,服务器就有明确的证据证实下一跳服务器不能知足请求。
10.5 5服务器错误
响应状态码“5”表示在何种状况下服务器知道它犯了错误或执行请求的能力。除了对头请求做出响应外,服务器应该包含一个包含错误状况解释的实体,以及它是不是临时的或永久的条件。用户代理应该向用户显示任何包含的实体。这些响应代码适用于任何请求方法。
10.5.1 500内部服务器错误
服务器遇到意外状况,阻止了它执行请求。
10.5.2 501未实现
服务器不支持实现请求所需的功能。当服务器不识别请求方法而且不能支持任何资源时,这是适当的响应。
10.5.3 502网关错误
服务器做为网关或代理,在试图知足请求时从它访问的上游服务器接收到无效的响应。
10.5.4 503服务不可用
因为暂时超载或维护服务器,服务器目前没法处理请求。这意味着这是一个暂时的条件,在一些延迟以后会获得缓解。若是已知,则延迟长度能够在报头后重试。若是未重试,则客户端应处理响应,如500响应。
注:503状态码的存在并不意味着
服务器在超载时必须使用它。有些服务器可能但愿
拒绝链接。
10.5.5 504网关超时
服务器做为网关或代理,并无从URI(如HTTP、FTP、LDAP)或其余辅助服务器(如DNS)所指定的上游服务器那里得到及时响应,在试图完成请求时须要访问该服务器。
注意:注意实施者:一些部署代理是众所周知的
返回400或500时,DNS查询超时。
10.5.6 505 HTTP版本不受支持
服务器不支持或拒绝支持请求消息中使用的HTTP协议版本。服务器指示它不能或不肯意使用与客户端相同的主要版本完成请求,如第3.1节所述,与此错误消息不一样。响应应该包含一个实体,描述为何不支持该版本以及该服务器支持的其余协议。