RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—译文) (18)

  Transfer-Encoding 通用头字段指示向消息体应用了什么(如果有的话)类型的转换,以便在发送方和接收方之间安全地传输它。这与内容编码不同,因为传输编码是消息的属性,而不是实体的属性。

       Transfer-Encoding       = "Transfer-Encoding" ":" 1#transfer-coding

  Transfer-codings在 小节中有详细的定义。下面是一个例子:

       Transfer-Encoding: chunked

  如果多个编码被应用到一个实体,那么传输编码必须按照应用它们的顺序列出。有关编码参数的其他信息可以由本规范未定义的其他实体头字段提供。

  大多数应用HTTP/1.0的协议无法理解Transfer-Encoding头字段。

14.42 Upgrade

  Upgrade通用头字段允许客户端指定它支持哪些附加通信协议,如果服务器发现它适合交换协议,则允许客户端使用哪些附加通信协议。服务器必须在101(Switching Protocols)响应中使用Upgrade头字段来指示正在交换哪些协议。

         Upgrade        = "Upgrade" ":" 1#product

  例如,

         Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

  Upgrade头字段旨在提供一个简单的机制,用于从HTTP/1.1转换到其他不兼容的协议。它通过允许客户端声明它想要使用另一种协议来实现这一点,比如使用更高主版本号的HTTP的后期版本,即使当前的请求是使用HTTP/1.1发出的。这通过允许客户端在更普遍支持的协议中发起请求,同时向服务器指示如果可用,它希望使用“更好”的协议(“更好”由服务器决定,可能根据所请求的方法和/或资源的性质不同而不同。),从而减轻了不兼容协议之间转换困难的问题。

  Upgrade头字段仅适用于现有传输层连接上的交换应用层协议。Upgrade不能用于坚持更改协议;服务器的接受和使用是可选的。协议改变后的应用层通信的能力和性质完全取决于所选择的新协议,尽管改变协议之后的第一动作必须是对包含Upgrade头字段的初始HTTP请求的响应。

  Upgrade头字段仅适用于立即连接。因此,每当在HTTP/1.1消息中存在Upgrade时,必须在Connection头字段(部分)中提供upgrade关键字。

  Upgrade头字段不能用于指示在不同连接上切换协议。为此,使用301, 302, 303或305等重定向响应更合适。

  本规范只定义了供超文本传输协议族使用的协议名称“HTTP”,如节的HTTP版本规则和本规范的未来更新所定义。任何令牌都可以用作协议名称;但是,只有当客户端和服务器都把该名称与相同的协议关联时才有用。

14.43 User-Agent

  User-Agent请求头字段包含关于发起请求的用户代理的信息。这是为了统计请求的意图、跟踪违反协议的情况以及自动识别用户代理,以便调整响应以避免特定的用户代理限制。用户代理应该将此字段包含在请求中。字段可以包含多个产品标记(第节)和标识代理和构成用户代理重要部分的任何子产品的注释。按照惯例,产品令牌是按照它们对识别应用程序的重要性列出的。

         User-Agent = "User-Agent" ":" 1*( product | comment )

  例子:

         User-Agent: CERN-LineMode/2.15 libwww/2.17b3

14.44 Vary

  Vary字段值表示请求头字段集,该字段集在响应是“新鲜”的情况下完全确定是否允许缓存使用响应来响应后续请求,而无需重新验证。对于无法缓存或过时的响应,Vary字段值向用户代理提供用于选择表示的标准。值“*”表示缓存无法从后续请求的请求头中确定此响应是否合适。请参阅第 节,了解缓存对Vary头字段的使用。

         Vary  = "Vary" ":" ( "*" | 1#field-name )

  HTTP/1.1服务器应该包含一个Vary头字段,其中包含任何可缓存的响应,该响应受服务器驱动协商的影响。这样做允许缓存正确地解释对该资源的未来请求,并告知用户代理该资源上是否存在协商。服务器可能包含一个Vary标头字段,其中不可缓存的响应受服务器驱动协商的影响,因为这可能为用户代理提供关于“响应”在响应时变化的维度的有用信息。

  一个Vary字段值,由一组字段名称信号组成,所选的响应表示是基于选择算法的,该算法在选择最合适的表示时只考虑列出的请求头字段。缓存可能假设在响应新鲜的时间段内,对于将来具有相同值的请求,将进行相同的选择。

  给出的字段名不限于此规范定义的标准请求头字段集。且字段名不区分大小写。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxpxz.html