问题:当服务器接受gzip / deflate连接并为移动客户端提供不同的内容时,发送Vary
HTTP标头的最佳方式是什么?
我看到两种可能的变体,但我找不到任何有用的信息,无论它们是否正确和/或大多数代理和搜索引擎支持:
Vary: Accept-Encoding,User-Agent
Vary: Accept-Encoding
Vary: User-Agent
欢迎提供适当的W3C标准的任何信息或链接:)
答案 0 :(得分:5)
两者都有效(并且意思相同)。
不,W3C与此无关。您需要查看IETF RFC 7230和7231。
答案 1 :(得分:0)
在两种情况下,允许使用多个具有相同名称的标题字段:
Set-Cookie
所有标头字段,其中value始终是一个列表(值以逗号分隔)
示例:Accept-Encoding
,Vary
,...
RFC 7230-3.2.2
发件人不得生成具有相同标题的多个标头字段 消息中的字段名称,除非该字段的整个字段值 该标头字段被定义为以逗号分隔的列表[即,#(values)] 或标头字段是众所周知的异常(如下所述)。
收件人可以将多个标头字段与同一字段组合 名称分成一对“字段名称:field-value”,而无需更改
消息的语义,方法是将每个后续字段值附加到 按顺序组合的字段值,以逗号分隔。订单
在其中接收到具有相同字段名称的标题字段的是
因此对于组合场的解释很重要
值;代理不得在以下情况下更改这些字段值的顺序:
转发消息。注意:实际上,“ Set-Cookie”标头字段([RFC6265])通常 在响应消息中多次出现,并且不使用 列出语法,违反了对多个标头的上述要求 具有相同名称的字段。由于无法合并为一个 单个字段值,收件人应将“ Set-Cookie”作为 处理标头字段时的特殊情况。 (见附录A.2.3 详情见[Kri2001]。