HTTP响应状态代码指示特定的HTTP请求是否已成功完成。回答分为五类:
- 信息响应(100–199),
- 成功响应(200–299),
- 重定向(300–399),
- 客户端错误(400–499),
- 和服务器错误(500–599)。
1、Information responses
这个临时响应表示到目前为止一切正常,客户端应该继续请求,如果请求已经完成,则忽略响应。
此代码作为对来自客户端的升级请求标头的响应而发送,并指示服务器正在切换到的协议。
此代码表示服务器已收到并正在处理请求,但还没有可用的响应。
此状态代码主要用于链接头,允许用户代理在服务器准备响应时开始预加载资源。
2、Successful responses
请求已成功。成功的意义取决于HTTP方法:
GET:资源已被获取并在消息体中传输。
HEAD:实体头在消息体中。
PUT或POST:描述操作结果的资源在消息体中传输。
TRACE:消息体包含服务器接收到的请求消息。
请求已成功,并因此创建了新资源。这通常是POST请求或某些PUT请求之后发送的响应。
已收到请求,但尚未采取行动。它是不确定的,因为在HTTP中没有办法稍后发送一个异步响应来指示请求的结果。它适用于另一个进程或服务器处理请求的情况,或者用于批处理。
203 Non-Authoritative Information
此响应代码表示返回的元信息与从源服务器获得的不完全相同,而是从本地或第三方副本收集的。这主要用于另一个资源的镜像或备份。除该特定情况外,“200OK”响应优先于此状态。
没有要为此请求发送的内容,但标头可能有用。用户代理可以用新的头更新它为此资源缓存的头。
当从客户端发送范围标头以仅请求部分资源时,将使用此响应代码
当从客户端发送范围标头以仅请求部分资源时,将使用此响应代码
传递有关多个资源的信息,用于可能需要多个状态代码的情况。
在a内部使用<达夫:propstat>元素,以避免重复枚举同一集合的多个绑定的内部成员。
226 IM Used
(HTTP Delta encoding)
服务器已完成对资源的GET请求,响应是应用于当前实例的一个或多个实例操作结果的表示。
3、Redirection messages
请求有多个可能的响应。用户代理或用户应选择其中一个。(没有选择其中一个响应的标准化方法,但是建议使用指向这些可能性的HTML链接,以便用户选择。)
请求资源的URL已永久更改。新的URL在响应中给出。
此响应代码表示请求资源的URI已临时更改。将来可能会对URI进行进一步的更改。因此,客户机在以后的请求中应该使用相同的URI
服务器发送此响应以指示客户端通过get请求在另一个URI处获取请求的资源
这用于缓存目的。它告诉客户机响应尚未修改,因此客户机可以继续使用相同的缓存版本的响应。
305 Use Proxy
在以前版本的HTTP规范中定义的,用于指示请求的响应必须由代理访问。由于涉及代理的带内配置的安全问题,它已被弃用。
306 unused
此响应代码不再使用;它只是保留的。它在以前版本的HTTP/1.1规范中使用过。
服务器发送此响应以指示客户机使用与前一个请求中使用的方法相同的方法从另一个URI获取请求的资源。这与302找到的HTTP响应代码具有相同的语义,只是用户代理不能更改所使用的HTTP方法:如果在第一个请求中使用了POST,则必须在第二个请求中使用POST。
这意味着资源现在永久位于另一个URI上,由Location:HTTP响应头指定。这与301移动的永久HTTP响应代码具有相同的语义,只是用户代理不能更改所使用的HTTP方法:如果在第一个请求中使用了POST,则必须在第二个请求中使用POST。
4、Client error responses
由于语法无效,服务器无法理解请求。
“未经授权的响应”在语义上是指“未经授权的响应”。也就是说,客户机必须对自己进行身份验证才能获得请求的响应。
此响应代码保留供将来使用。创建此代码的最初目的是将其用于数字支付系统,但是此状态代码很少使用,并且不存在标准约定。
客户端没有对内容的访问权限;也就是说,它是未经授权的,因此服务器拒绝提供所请求的资源。与401不同的是,服务器知道客户机的身份。
服务器找不到请求的资源。在浏览器中,这意味着无法识别URL。在API中,这也意味着端点是有效的,但资源本身不存在。服务器也可以发送此响应而不是403,以向未经授权的客户端隐藏资源的存在。这个响应代码可能是最著名的一个,因为它经常出现在web上
服务器知道请求方法,但已被禁用,无法使用。例如,API可能禁止删除资源。两个必需的方法GET和HEAD决不能被禁用,并且不应返回此错误代码。
当web服务器在执行服务器驱动的内容协商后,未找到任何符合用户代理给定条件的内容时,将发送此响应。
407 Proxy Authentication Required
这与401类似,但身份验证需要由代理完成。
此响应由一些服务器在空闲连接上发送,即使客户机之前没有任何请求。这意味着服务器要关闭这个未使用的连接。由于一些浏览器(如Chrome、firefox27+或IE9)使用HTTP预连接机制来加快浏览速度,所以使用这种响应的次数要多得多。还要注意,有些服务器只是关闭连接而不发送此消息
当请求与服务器的当前状态冲突时发送此响应。
当请求的内容已从服务器中永久删除且没有转发地址时,将发送此响应。客户机应删除其缓存和到资源的链接。HTTP规范打算将此状态代码用于“限时促销服务”。API不应该被迫用此状态代码指示已删除的资源。
服务器拒绝了请求,因为未定义内容长度标头字段,而服务器需要它。
客户机在其标头中指出了服务器不满足的先决条件。
请求实体大于服务器定义的限制;服务器可能会关闭连接或返回重试后标头字段。
客户端请求的URI比服务器愿意解释的长
服务器不支持请求数据的媒体格式,因此服务器拒绝该请求。
无法实现请求中的range header字段指定的范围;该范围可能超出了目标URI的数据大小
5、Server error responses
服务器遇到了不知道如何处理的情况。
服务器不支持请求方法,因此无法处理。服务器需要支持的唯一方法(因此不能返回此代码)是GET和HEAD。
此错误响应意味着服务器作为网关来获取处理请求所需的响应时,得到的响应无效。