我可以用逗号分隔所有HTTP头吗?甚至授权?
我正在阅读HTTP 1.1 RFCs,无法回答以下问题 我们有以下标题:我可以用逗号分隔所有HTTP头吗?甚至授权?,http,apache,rfc,rfc2616,Http,Apache,Rfc,Rfc2616,我正在阅读HTTP 1.1 RFCs,无法回答以下问题 我们有以下标题: Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic 这会造成问题,因为Rails 3授权解析器由于“,”字符错误地解码字符串。我知道这很少见,但我们使用Apache httpd配置添加了这一点: RequestHeader append Authorization "Basic" early 报告说: 响应头将附加到同一响应的任何现有头 名称当一个新值合并到一个现有
Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic
这会造成问题,因为Rails 3授权解析器由于“,”字符错误地解码字符串。我知道这很少见,但我们使用Apache httpd配置添加了这一点:
RequestHeader append Authorization "Basic" early
报告说:
响应头将附加到同一响应的任何现有头
名称当一个新值合并到一个现有的头上时,它是
用逗号与现有标题分隔。这是HTTP
给标题多个值的标准方法
但是我认为这个授权头不正确。RFC定义不允许这样做。但有些标题允许逗号分隔的列表。我不确定这是否是所有HTTP头的一般规则
我想在HTTP 1.1 RFC中找到一段证明我的观点的话,这是不正确的。我已经发现一些东西在说“这只对可以分离的标题有效”,但这并不是一个证据
可能存在多个具有相同字段名的消息头字段
在消息中,当且仅当该标头的整个字段值
字段定义为逗号分隔的列表[即#(值)]。它必须
可以将多个标题字段合并为一个
“字段名:字段值”对,不更改
消息,通过将每个后续字段值附加到第一个字段,每个
用逗号分隔。标题字段具有相同名称的顺序
因此,收到的字段名称对解释非常重要
组合字段值,因此代理不能更改
转发消息时这些字段值的顺序
这确实没有道理,但我正在寻找一个明确的证据。答案在你引用的文本中: “当且仅当消息头字段的整个字段值定义为逗号分隔列表[即#(值)]时,消息中可能存在多个具有相同字段名的消息头字段。”
“授权”并非如此。我找不到其他任何东西。看起来这是睡了7个小时后的情况:-)