Como o punho wsgi solicitar vários cabeçalhos com o mesmo nome?
Pergunta
Em cabeçalhos WSGI estão representados no environ como valores 'HTTP_XXX'. Por exemplo, o cabeçalho valor Cookie:
é armazenado na chave HTTP_COOKIE
da Environ.?
Como são vários cabeçalhos de solicitação com o mesmo nome de cabeçalho representados?
Solução
Vários cookies são combinadas em um único cabeçalho, separados por vírgulas.
Vários cabeçalhos são permitidos por o HTTP especificação , mas apenas para determinados tipos de cabeçalhos, e é sempre permitido combinar esses cabeçalhos em um (embora usando vírgulas, nem ponto e vírgula)
Outras dicas
Eu pensei que a resposta para esta pergunta seria trivial, mas depois de cavar um pouco Eu não tenho tanta certeza.
Aqui está o que eu encontrei até agora:
O WSGI PEP-333 ( http://www.python.org/ dev / peps / pep-0333 / ) sugere que as variáveis ??de ambiente deve conter o que a especificação CGI diz.
A especificação CGI (cada vez mais difícil de encontrar, um monte de links quebrados, o melhor que eu poderia encontrar em projecto-coar-cgi-v11-03 ) fala sobre metadados e diz (seção 6.1.5)
". Se vários campos de cabeçalho com o mesmo campo-name são recebidos então o servidor deve reescrevê-los como se que tinha sido recebido como um único campo de cabeçalho que tem a mesma semântica antes de ser representada em um metavariable "
O que sugere para mim que, se você tiver várias linhas de cabeçalho com a mesma chave, você deve se juntar a eles de alguma forma em uma linha.
HTTP_COOKIE, como exemplo, apoia esta concatenando todos os pares chave = valor em uma linha com ponto e vírgula entre eles.