我正在阅读HTTP 1.1 RFC,但我无法回答以下问题。
我们有这个标题:
Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic
导致麻烦,因为Rails 3授权解析器由于“,”字符错误地解码了字符串。我知道这是非常罕见的,但我们使用这个Apache httpd配置添加它:
RequestHeader append Authorization "Basic" early
Apache mod_header documentation说:
响应标头将附加到相同的任何现有标头 名称。当新值合并到现有标头时,它就是 用逗号分隔现有标题。这是HTTP 给标题多个值的标准方法。
但我不认为这个Authorization标题是正确的。 RFC定义不允许这样做。但是一些标题允许以逗号分隔的列表。我不确定这是否是所有HTTP标头的一般规则。
我正在寻找HTTP 1.1 RFC 中的段落,这证明了我的想法是不正确的。我已经找到了一些说法“这只适用于可以分离的标题”,但这不是证据。
可能存在具有相同字段名称的多个消息头字段 在消息中,当且仅当该标头的整个字段值 字段被定义为以逗号分隔的列表[即,#(值)]。它必须 可以将多个标题字段合并为一个 “field-name:field-value”对,不改变语义 消息,通过将每个后续字段值附加到第一个,每个 用逗号分隔。头字段具有相同的顺序 因此,接收字段名称对于解释是重要的 组合字段值,因此代理不得改变 转发邮件时这些字段值的顺序。
这真的没有意义,但我正在寻找明确的证据。
答案 0 :(得分:2)
答案在你引用的文字中:
“当且仅当该头字段的整个字段值被定义为以逗号分隔的列表[即#(值)]时,消息中可能存在具有相同字段名称的多个消息头字段。“
“授权”不是这种情况。