Как wsgi обрабатывает несколько заголовков запросов с одним и тем же именем?

StackOverflow https://stackoverflow.com/questions/1801124

  •  05-07-2019
  •  | 
  •  

Вопрос

Заголовки WSGI представлены в среде как значения «HTTP_XXX».Например, значение Cookie: заголовок хранится в HTTP_COOKIE ключ к окружающей среде.

Как представляются несколько заголовков запроса с одним и тем же именем заголовка?

Это было полезно?

Решение

Несколько файлов cookie объединяются в один заголовок, разделенный точкой с запятой.

Несколько заголовков разрешены в спецификации HTTP , но только для определенных типов заголовков, и всегда допустимо объединять эти заголовки в один (хотя с использованием запятых, а не точек с запятой)

Другие советы

Я думал, что ответ на этот вопрос будет тривиальным, но, покопавшись немного, я не так уверен.

Вот что я нашел на данный момент:

WSGI PEP-333 (http://www.python.org/dev/peps/pep-0333/) предполагает, что переменные среды должны содержать все, что говорит спецификация CGI.

Спецификация CGI (все труднее найти, много неработающих ссылок, лучшее, что я смог найти на проект-coar-cgi-v11-03) рассказывает о метаданных и говорит (раздел 6.1.5)

".Если получено несколько полей заголовков с одинаковым полевым именем, то сервер должен переписать их так, как если бы они были получены в качестве единого поля заголовка, имеющего ту же семантику, прежде чем быть представленным в метаварите ».

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

HTTP_COOKIE, например, поддерживает это, объединяя все пары ключ=значение в одну строку с точками с запятой между ними.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top