Могу ли я разделить ВСЕ заголовки HTTP запятой? Даже авторизация?

Я читаю RFC HTTP 1.1 и не могу ответить на следующий вопрос.

У нас есть такой заголовок:

Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic

что вызывает проблемы, потому что парсер авторизации Rails 3 неправильно декодирует строку из-за символа ",". Я знаю, что это очень редко, но мы добавляем это, используя эту конфигурацию Apache httpd:

RequestHeader append Authorization "Basic" early

В документации Apache mod_header говорится:

Заголовок ответа добавляется к любому существующему заголовку с таким же именем. Когда новое значение добавляется к существующему заголовку, оно отделяется от существующего заголовка запятой. Это стандартный HTTP-способ присвоения заголовку нескольких значений.

Но я не думаю, что это правильно для этого заголовка авторизации. Определение RFC не допускает этого. Но некоторые заголовки допускают список, разделенный запятыми. Я не уверен, что это общее правило для всех заголовков HTTP.

Я ищу абзац в HTTP 1.1 RFC, подтверждающий мою мысль, что это неверно. Я уже нашел кое-что, в котором говорится, что «это действительно только для заголовков, которые можно разделить», но это не доказательство.

Несколько полей заголовка сообщения с одинаковым именем поля МОГУТ присутствовать в сообщении тогда и только тогда, когда все значение поля для этого поля заголовка определено как список, разделенный запятыми [т.е. # (значения)]. ДОЛЖНА быть возможна объединение нескольких полей заголовка в одну пару «имя-поля: значение поля» без изменения семантики сообщения путем добавления каждого последующего значения поля к первому, каждое из которых разделено запятой. Следовательно, порядок, в котором принимаются поля заголовка с одинаковым именем поля, важен для интерпретации значения комбинированного поля, и, таким образом, прокси-сервер НЕ ДОЛЖЕН изменять порядок значений этих полей при пересылке сообщения.

Это действительно не имеет смысла, но я ищу четкое доказательство.


person lzap    schedule 25.01.2012    source источник


Ответы (1)


Ответ содержится в цитированном вами тексте:

«Несколько полей заголовка сообщения с одним и тем же именем поля МОГУТ присутствовать в сообщении тогда и только тогда, когда все значение поля для этого поля заголовка определено как список, разделенный запятыми [например, # (значения)]».

Это не относится к «Авторизации».

person Julian Reschke    schedule 25.01.2012
comment
Ну я не смог найти ничего другого. Похоже, это после 7 часов сна :-) - person lzap; 26.01.2012