非常教程

HTTP参考手册

指南 | Guides

Response codes

HTTP响应状态代码指示特定的HTTP请求是否已成功完成。响应分为五类:信息响应,成功响应,重定向,客户端错误和服务器错误。状态码由RFC 2616的第10部分定义。

信息回应

100 Continue这个临时响应表明,到目前为止,所有事情都可以确定,并且客户端应该继续请求或者在请求已经完成时忽略它。101 Switching Protocol此代码是为了响应Upgrade客户端的请求标头而发送的,并指示服务器也正在切换的协议。102 Processing(WebDAV)此代码表示服务器已接收并正在处理请求,但尚未有响应。

成功的回应

200 OK该请求已成功。成功的意义取决于HTTP方法:

GET:资源已被提取并在消息体中传输。

HEAD:实体头部位于消息体中。

POST:描述操作结果的资源在消息主体中传输。

TRACE:消息正文包含服务器接收到的请求消息201 Created请求已成功并且由于此请求已创建新资源。这通常是在PUT请求之后发送的响应。202 Accepted该请求已收到,但尚未执行。它是非承诺的,这意味着HTTP中没有办法稍后发送指示处理请求结果的异步响应。它适用于其他进程或服务器处理请求或批处理的情况。203 Non-Authoritative Information此响应代码意味着返回的元信息集不是从源服务器准确设置的,而是从本地或第三方副本收集的。除了这种情况外,应该优先选择200 OK响应而不是此响应。204 No Content没有要发送此请求的内容,但标题可能很有用。用户代理可以用新的更新它的这个资源的缓存标题。205 Reset Content此响应代码在完成请求以告知用户代理重置发送此请求的文档视图后发送。206 Partial Content使用此响应代码是因为客户端发送的范围标题将分隔下载到多个流中。207 Multi-Status(WebDAV)在多个状态代码可能适用的情况下,多状态响应传达有关多个资源的信息。208 Multi-Status(WebDAV)在DAV:propstat响应元素中使用,以避免重复枚举多个绑定的内部成员到同一个集合。226 IM Used(HTTP Delta编码)服务器已经完成了对资源的GET请求,并且响应是应用于当前实例的一个或多个实例操作结果的表示。

重定向消息

300 Multiple Choice该请求有多个可能的响应。用户代理或用户应该选择其中之一。没有标准化的方式来选择其中一个响应。301 Moved Permanently该响应码意味着请求资源的URI已被更改。可能会在响应中提供新的URI。302 Found该响应码意味着请求资源的URI已被临时改变。将来可能会对URI进行新的更改。因此,客户端在未来的请求中应该使用相同的URI。303 See Other服务器发送此响应以指示客户端使用GET请求获取请求的资源到另一个URI。304 Not Modified这用于缓存目的。它告诉客户,响应没有被修改。所以,客户端可以继续使用相同的缓存版本的响应。305 Use Proxy在HTTP规范的先前版本中定义为指示必须由代理访问请求的响应。由于代理的带内配置的安全问题,它已被弃用。306 unused此响应代码不再使用,它​​只是保留在当前。它用于HTTP 1.1规范的先前版本。307 Temporary Redirect服务器发送此响应以指示客户端使用与先前请求相同的方法将请求的资源获取到另一个URI。它具有与302 FoundHTTP响应代码相同的语义,但用户代理不能更改所使用的HTTP方法:如果POST在第一个请求POST中使用了a,则必须在第二个请求中使用a 。308 Permanent Redirect这意味着资源现在永久地位于由Location:HTTP响应头指定的另一个URI 。它具有与301 Moved PermanentlyHTTP响应代码相同的语义,但用户代理不能更改所使用的HTTP方法:如果POST在第一个请求POST中使用了a,则必须在第二个请求中使用a 。

客户端错误响应

400 Bad Request此响应意味着由于语法无效,服务器无法理解请求。401 Unauthorized尽管HTTP标准指定了“未授权”,但在语义上这个响应意味着“未认证”。也就是说,客户端必须进行身份验证才能获得请求的响应。402 Payment Required此答复代码保留供将来使用。创建此代码的初始目标是将其用于数字支付系统,但目前尚未使用。403 Forbidden客户端没有对内容的访问权限,即他们未经授权,因此服务器拒绝给予适当的响应。与401不同,客户端的身份对服务器是已知的。404 Not Found服务器找不到请求的资源。在浏览器中,这意味着URL不被识别。在API中,这也意味着端点有效,但资源本身不存在。服务器也可能发送此响应而不是403来隐藏未授权客户端的资源。这个响应代码可能是最着名的一个,因为它在网上频繁发生。405 Method Not Allowed请求方法由服务器知道,但已被禁用且无法使用。例如,API可能禁止删除资源。这两个强制性方法,GET并且HEAD,绝不能被禁用,不应返回该错误代码。406 Not Acceptable当执行服务器驱动的内容协商后,Web服务器发送此响应,没有找到任何符合用户代理标准的内容。407 Proxy Authentication Required这与401类似,但需要通过代理进行身份验证。408 Request Timeout这个响应在一些服务器的空闲连接上发送,即使客户端没有任何先前的请求。这意味着服务器想要关闭这个未使用的连接。由于Chrome,Firefox 27+或IE9等浏览器使用HTTP预连接机制加快浏览速度,因此使用此响应的次数更多。另请注意,某些服务器仅在不发送此消息的情况下关闭连接。409 Conflict当请求与服务器的当前状态冲突时,会发送此响应。410 Gone如果所请求的内容已从服务器中彻底删除,并且没有转发地址,则会发送此响应。客户需要删除他们的缓存和资源链接。HTTP规范旨在将此状态码用于“限时促销服务”。API不应强迫使用此状态代码指示已删除的资源。411 Length Required服务器拒绝了请求,因为Content-Length头字段没有被定义并且服务器需要它。412 Precondition Failed客户端已经在服务器不符合的标题中指出了前提条件。413 Payload Too Large请求实体大于服务器定义的限制; 服务器可能会关闭连接或返回一个Retry-After标题字段。414 URI Too Long客户端请求的URI比服务器愿意解释的更长。415 Unsupported Media Type所请求数据的媒体格式不受服务器支持,因此服务器拒绝该请求。请求中标题字段416 Requested Range Not Satisfiable指定的范围Range不能满足; 范围可能超出目标URI数据的大小。417 Expectation Failed该响应码意味着Expect服务器无法满足请求头字段指示的期望值。418 I'm a teapot服务器拒绝尝试用茶壶冲泡咖啡。421 Misdirected Request该请求针对的是无法产生响应的服务器。这可以由服务器发送,该服务器未配置为针对包含在请求URI中的方案和权限的组合产生响应。422 Unprocessable Entity(WebDAV)请求格式良好,但由于语义错误无法遵循。423 Locked(WebDAV)被访问的资源被锁定。424 Failed Dependency(WebDAV)由于先前请求失败,请求失败。426 Upgrade Required服务器拒绝使用当前协议执行请求,但可能在客户机升级到不同协议后愿意这样做。服务器Upgrade在426响应中发送标题以指示所需的协议。428 Precondition Required原始服务器要求该请求是有条件的。旨在防止“丢失更新”问题,即客户端获取资源状态,修改该状态并将其返回服务器,同时第三方修改了服务器上的状态,导致冲突。429 Too Many Requests用户在给定的时间内发送了太多请求(“限速”)。431 Request Header Fields Too Large服务器不愿意处理请求,因为它的头部字段太大。请求可以在减小请求头字段的大小后重新提交。451 Unavailable For Legal Reasons用户请求非法资源,例如由政府审查的网页。

服务器错误响应

500 Internal Server Error服务器遇到了它不知道如何处理的情况。501 Not Implemented请求方法不受服务器支持,无法处理。服务器需要支持的唯一方法(因此不能返回此代码)是GETHEAD502 Bad Gateway这个错误响应意味着服务器作为一个网关来处理请求所需的响应,得到了无效的响应。503 Service Unavailable服务器没有准备好处理请求。常见原因是服务器因维护或重载而停机。请注意,与此响应一起,应发送解释问题的用户友好页面。这种反应应该用于临时条件和Retry-After:如果可能的话,HTTP头应该包含恢复服务之前的估计时间。网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。504 Gateway Timeout当服务器充当网关并且无法及时得到响应时,会给出此错误响应。505 HTTP Version Not Supported请求中使用的HTTP版本不受服务器支持。506 Variant Also Negotiates服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。507 Insufficient Storage服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。508 Loop Detected(WebDAV)服务器在处理请求时检测到无限循环。510 Not Extended服务器需要对请求进一步扩展才能实现它。511 Network Authentication Required511状态码指示客户端需要进行身份验证才能获得网络访问权限。