Wie funktioniert wsgi mehrere Request-Header mit dem gleichen Namen umgehen?
Frage
In WSGI-Header werden in der environ als Wert 'HTTP_XXX' dargestellt. Zum Beispiel wird der Wert Cookie:
Kopf am HTTP_COOKIE
Schlüssel des environ gespeichert.
Wie sind mehrere Request-Header mit dem gleichen Header-Namen dargestellt?
Lösung
Mehrere Cookies werden in einem einzigen Header kombiniert, getrennt durch Semikolons.
Mehrere Header dürfen von der HTTP-Spezifikation , aber nur für bestimmte Arten von Kopfzeilen, und es ist immer zulässig, diese Header zu einem kombinieren
(obwohl Komma, nicht Semikolons)Andere Tipps
dachte ich, die Antwort auf diese trivial sein würde, aber nach ein wenig zu graben Ich bin mir nicht so sicher.
Hier ist, was ich bisher gefunden habe:
Das WSGI PEP-333 ( http://www.python.org/ dev / pep / pep-0333 / ) deutet darauf hin, dass die Umgebungsvariablen unabhängig von der CGI-Spezifikation sagt enthalten sollen.
Die CGI-Spezifikation (immer schwieriger zu finden, viele defekte Links, beste, das ich unter Entwurf-coar-cgi-v11-03 ) spricht über Metadaten und sagt (siehe Abschnitt 6.1.5)
“. Wenn mehrere Header-Felder mit der gleicher Feldname empfängt dann der Server muss neu schreiben sie, als ob sie hatten als einzige empfangen worden Header-Feld mit der gleichen Semantik bevor sie in einem dargestellt werden, Metavariable "
Was mir schlägt vor, dass, wenn Sie mehrere Kopfzeilen mit dem gleichen Schlüssel haben, können Sie sie nach oben irgendwie in einer Linie verbinden muss.
HTTP_COOKIE, als ein Beispiel, unterstützt dies durch all die Schlüssel Verketten = Wert-Paare in eine Linie mit Semikolons zwischen ihnen.