我正在閱讀HTTP 1.1 RFC,我無法回答以下問題。我可以使用逗號分隔所有HTTP標頭嗎?甚至授權?
我們有這樣的標題:
Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic
這是造成麻煩,因爲Rails 3的授權解析器因爲「」字符的字符串譯碼錯誤。這是非常罕見的,我知道,但我們添加這個使用這個Apache的httpd配置:
RequestHeader append Authorization "Basic" early
的Apache mod_header documentation說:
響應報頭被附加到同一 名稱的任何現有的頭。當一個新值被合併到一個現有的頭上時,它是用逗號與現有頭分離的 。這是爲標題提供多個值的標準方式。
但我不認爲這是授權標題正確。 RFC定義不允許這樣做。但是一些頭文件允許用逗號分隔的列表。我不確定這是否是所有HTTP標頭的一般規則。
我是在HTTP 1.1 RFC中尋找一段可以證明我的想法不正確。我已經發現了一些說「這僅適用於可以分開的標題」,但這不是一個證明。
具有相同字段名的多個消息的報頭字段可以出現 在消息當且僅當該頭 字段整個字段值被定義爲逗號分隔的列表[即,# (值)]。它必須 可以通過將每個後續字段值附加到第一個,每個 分隔的一個 「字段名稱:字段值」對,而不更改消息的語義,可以將多個標題字段組合到一個 「逗號。因此,接收到字段名相同的標題字段的順序對於組合字段值的解釋 有意義,因此當轉發消息時,代理不得更改這些字段值的 順序。
它確實沒有意義,但我正在尋找一個明確的證據。
那麼我無法找到其他任何東西。看起來這是在睡了7個小時之後:-) – lzap