Transfer-Encoding

文章插图
首部字段Transfer-Encoding规定了传输报文主体时采用的编码方式 。
HTTP/1.1的传输编码方式仅对分块传输编码有效 。

文章插图
以上用例中,正如在首部字段Transfer-Encoding中指定的那样,有效使用分块传输编码,且分别被分成3312字节和914字节大小的分块数据 。
Upgrade
首部字段Upgrade用于检测HTTP协议及其他协议是否可使用更高的版本进行通信,其参数值可以用来指定一个完全不同的通信协议 。

文章插图
上图用例中,首部字段Upgrade指定的值为TLS/1.0 。请注意此处两个字段首部字段的对应关系,Connection的值被指定为Upgrade 。Upgrade首部字段产生作用的Upgrade对象仅限于客户端和邻接服务器之间 。因此,使用首部字段Upgrade时,还需要额外指定Connection:Upgrade 。
对于附有首部字段Upgrade的请求,服务器可用101 SwitchingProtocols状态码作为响应返回 。
Via
使用首部字段Via是为了追踪客户端与服务器之间的请求和响应报文的传输路径 。
报文经过代理或网关时,会先在首部字段Via中附加该服务器的信息,然后再进行转发 。这个做法和traceroute及电子邮件的Received首部的工作机制很类似 。
首部字段Via不仅用于追踪报文的转发,还可避免请求回环的发生 。所以必须在经过代理时附加该首部字段内容 。

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

文章插图
Warning首部的格式如下 。最后的日期时间部分可省略 。

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

文章插图
推荐阅读
- 你知道今日头条极速版怎样“关闭任务中心 隐藏奖励任务”吗?
- 心理测试 风景?测试你最大的魅力在哪里-
- 快递|当下最赚钱的行业,你知道有哪些吗?这五个行业都可以考虑
- AMD|全球第一次!AMD显卡走入迷你机 却配了个老锐龙
- 怎样有效的锻炼协调性?
- 我不知道你是否爱我?我爱你你不知道
- 像莲花一样,你会完全升华自己
- 每晚在床头做会让你更加自信
- 睡眠的最后一根“救命稻草”,你是否抓得住
- 适合白领保健的四个瑜伽动作,不知道的太可惜了
