您的位置:首页 > 理论基础 > 计算机网络

关于HTTP状态码的一些总结(一)

2015-03-30 14:33 211 查看
HTTP状态码为客户端提供了一种更容易理解服务处理结果的方式,所以对状态码的了解,将会是许多企业的考察人才的必然之选。

首先我们简略地总结下状态码的分类:

状态码分类

整体范围 已定义范围分类

100~199 100~101信息提示类

200~299 200~206成功

300~399 300~305重定向

400~499 400~415客户端错误

500~599 500~505服务器错误

好,我们开始详细讲述每部分。

100 ~ 199 信息状态码:

状态码 原因短语含义

100 Continue
说明服务端收到请求的初始部分,客户端可以继续。

101 Switching
Protocols 服务器根据客户端的指定,协议将转换为Update 首部所列的协议。

102 Processing 由WebD***(RFC 2518)扩展的状态码,代表处理将被继续执行。

100Continue

1. Client与100continue

100continue是一种优化。因为客户端可能回向服务端发送很大的一个实体。使用100continue可以先确认服务端是否能接受该实体,提高了效率。

具体来说,100continue用于客户端发送POST给服务器时,没有post数据时,请不要使用100continue,以免服务端困惑。当两端同意使用100continue时,

客户端可以在首部中加入 Expect: 100-continue

2.server与100continue

如果服务器收到带有值为100continue的Expect首部请求,它可能返回100continue响应或者400BadRequest或者无响应甚至是不能想象的错误代码。

*注意,如果客户端很长时间内没有收到响应,那客户端应该立刻将实体发送出去。不过,就是因为这样,服务端可能在没有返回100continue响应就收到

了客户端一堆的实体数据,这样,服务端就无须再发送100continue了。

3.via与100continue

via在这里需要学会判断是否转发100continue。如果它知道下一跳代理或者服务端是HTTP/1.1兼容的,或者不知道的,它都应该进行转发。如果它知道下一跳代理或者服务器不能兼容,则应该以417Expectation返回。

101 Switching Protocols

RFC对此有如下解析:

The server understands and is willing to comply with the client's request, via the Upgrade message header field (section 14.42), for a change in the application protocol being used on this connection. The server will switch protocols to those defined by the
response's Upgrade header field immediately after the empty line which terminates the 101 response.

The protocol SHOULD be switched only when it is advantageous to do so. For example, switching to a newer version of HTTP is advantageous over older versions, and switching to a real-time, synchronous protocol might be advantageous when delivering resources
that use such features.

服务器理解并且确认去执行客户端的请求,通过首部的upgrade,譬如upgrade:http2.0 ,改变使用在此连接上的应用协议。服务端将会在101响应结束后立刻切换到upgrade对应的协议。

只有在合适的场合才可以去切换。譬如,切换到新的版本时,该版本必须向前兼容,又或者在实时异步传输资源的过程中,须确保传输不受协议转换的影响。

102 Processing

由WebD***(Web-based Distributed Authoring and Versioning)(RFC 2518)扩展的状态码,代表处理将被继续执行。普及一下WebD*** , 它是一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

WebD***请求可能含有很多的子请求譬如文件操作。有时候需要一段时间长可以完成请求。102processing表示当前服务器处于处理请求状态从而没有响应。这样可以防止客户端认为超时或者请求失败。

接下来的章节将会从200状态码开始介绍,如有错误,恳请各位指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: