Как wsgi обрабатывает несколько заголовков запросов с тем же именем?
В заголовках WSGI представлены в окружении как значения "HTTP_XXX". Например, заголовок значения Cookie: хранится в HTTP_COOKIE в среде.
Как отображаются несколько заголовков запросов с тем же именем заголовка?
Ответ 1
Несколько файлов cookie объединяются в один заголовок, разделенный точками с запятой.
Несколько заголовков разрешены спецификацией HTTP, но только для определенных типов заголовков, и всегда можно объединить эти заголовки в один (хотя и с запятыми, а не с запятой)
Ответ 2
Я думал, что ответ на этот вопрос будет тривиальным, но после копания я не уверен.
Спецификация CGI (сложнее найти, много неработающих ссылок, лучше всего найти в draft-coar-cgi-v11-03) рассказывает о метаданных и говорит (раздел 6.1.5)
". Если несколько полей заголовка с одно и то же имя поля сервер ДОЛЖЕН переписать их, как будто они были получены как единый поле заголовка, имеющее ту же семантику перед тем как быть представленным в метапеременная"
Что подсказывает мне, что если у вас несколько строк заголовка с одним и тем же ключом, вы должны каким-то образом объединить их в одну строку.
HTTP_COOKIE, в качестве примера, поддерживает это, объединяя все пары key = value в одну строку с точкой с запятой между ними.