¿Cómo maneja wsgi múltiples encabezados de solicitud con el mismo nombre?
Pregunta
En WSGI, los encabezados se representan en el entorno como valores 'HTTP_XXX'. Por ejemplo, el valor Cookie:
encabezado se almacena en la clave HTTP_COOKIE
del entorno.
¿Cómo se representan múltiples encabezados de solicitud con el mismo nombre de encabezado?
Solución
Se combinan varias cookies en un solo encabezado, separadas por punto y coma.
Se permiten varios encabezados por la especificación HTTP , pero solo para ciertos tipos de encabezados, y siempre está permitido combinar esos encabezados en uno (aunque usando comas, no punto y coma)
Otros consejos
Pensé que la respuesta a esta sería trivial, pero después de cavar un poco, no estoy tan seguro.
Esto es lo que he encontrado hasta ahora:
El WSGI PEP-333 ( http://www.python.org/ dev / peps / pep-0333 / ) sugiere que las variables de entorno deben contener lo que dice la especificación CGI.
La especificación CGI (cada vez más difícil de encontrar, muchos enlaces rotos, mejor que pude encontrar en draft-coar-cgi-v11-03 ) habla sobre metadatos y dice (sección 6.1.5)
" ;. Si varios campos de encabezado con el se reciben el mismo nombre de campo y luego el servidor DEBE reescribirlos como si habían sido recibidos como solteros campo de encabezado que tiene la misma semántica antes de ser representado en un metavariable "
Lo que me sugiere que si tiene varias líneas de encabezado con la misma clave, debe unirlas de alguna manera en una sola línea.
HTTP_COOKIE, como ejemplo, admite esto mediante la concatenación de todos los pares clave = valor en una línea con punto y coma entre ellos.