17 - 03 - 21 图解HTTP(25)

Upgrade

通用首部字段Upgrade用于检测HTTP协议及其他协议是否可使用更高的版本进行通信,

其参数值可以用来指定一个完全不同的通信协议。


上图中,首部字段Upgrade指定的值为TLS/1.0 。请注意此处两个字段首部字段的对应关系,

Connection的值被指定为Upgrade 。Upgrade首部字段产生作用的 Upgrade对象仅限于客户端和邻接服务器之间。

因此,使用首部字段Upgrade时,还需要额外指定Connection : Upgrade。

对于附有首部字段Upgrade的请求服务器可用 101 Switching Protocol状态码作为响应返回。

Via

通用首部字段Via是为了追踪客户端与服务器之间的请求和响应报文的传输路径。

报文经过代理或网关时,会先在首部字段 Via  中附加该服务器的信息,然后再进行转发。

这个做法和traceroute及电子邮件的 Received首部的工作机制很类似。Via不仅用于追踪报文的转发,还可避免请求回环的发生。

所以必须在经过代理时附加该首部字段内容。

下图中,在经过代理服务器 A时,Via首部附加了“1.0gw.hackr.jp (Squid/3.1)”这样的字符串值。行头的1.0是指接收请求的服务器上应用的HTTP协议版本。接下来经过代理服务器B时亦是如此,在 Via首部附加服务器信息,也可增加1个新的Via首部写入服务器信息。Via首部是为了追踪传输路径,所以经常会和 TRACE  方法一起使用。比如,代理服务器接收到由TRACE方法发送过来的请求(其中 Max-Forwards: 0)时,代理服务器就不能再转发该请求了。这种情况下,代理服务器会将自身的信息附加到 Via  首部后,返回该请求的响应。


 

Warning

HTTP/1.1的Warning首部是从1.0版本的响应首部(Retry-After)演变而来。该首部通常会告知用户一些与缓存相关的问题的警告。

Warning: 113 gw.hackr.jp:8080 "Heuristic expiration" Tue, 03 Jul 2012 05:09:44 GMT ----- ( 示例)

Warning  首部的格式如下:(最后的日期时间部分可省略)

Warning: [警告码][警告的主机:端口号]“[警告内容]”([日期时间])

HTTP/1.1中定义了7种警告。警告码对应的警告内容仅推荐参考。另外,警告码具备扩展性,今后有可能追加新的警告码。

 

一个警告表...: HTTP/1.1  警告码:



警告码 警告内容 说明
110 Response is stale (响应已过期) 代理返回已过期的资源
111 Revalidation failed (再验证失败)   代理再验证资源有效性时失败(服务器无法到达等原因)
112 Disconnection operation (断开连接操作) 代理与互联网连接被故意切断
113 Heuristic expiration (试探性过期) 响应的使用期超过 24 小时(有效缓存的设定时间大于 24 小时的情况下)
199 Miscellaneous warning (杂项警告) 任意的警告内容
214 Transformation applied (使用了转换) 代理对内容编码或媒体类型等执行了某些处理时
299 Miscellaneous persistent warning (持久杂项警告) 任意的警告内容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章