Question

Dans l'en-tête WSGI, les en-têtes sont représentés dans l'environnement sous la forme de valeurs 'HTTP_XXX'. Par exemple, l'en-tête Cookie: est stocké dans la clé HTTP_COOKIE de l'environnement.

Comment plusieurs en-têtes de requête portant le même nom d'en-tête sont-ils représentés?

Était-ce utile?

La solution

Plusieurs cookies sont combinés dans un seul en-tête, séparés par des points-virgules.

Plusieurs en-têtes sont autorisés par la spécification HTTP , mais uniquement pour certains types d’en-têtes, et il est toujours possible de combiner ces en-têtes en un seul (à l’aide de virgules, et non de points-virgules)

Autres conseils

Je pensais que la réponse à cette question serait triviale, mais après en avoir creusé un peu, je n'en suis pas si sûr.

Voici ce que j'ai trouvé jusqu'à présent:

Le WSGI PEP-333 ( http://www.python.org/ dev / peps / pep-0333 / ) suggère que les variables d’environnement doivent contenir tout ce que dit la spécification CGI.

La spécification CGI (de plus en plus difficile à trouver, beaucoup de liens brisés, le mieux que je puisse trouver à draft-coar-cgi-v11-03 ) parle de métadonnées et dit (section 6.1.5)

  

" ;. Si plusieurs champs d’en-tête avec le   même nom de champ sont reçus alors le   le serveur DOIT les réécrire comme si   ils avaient été reçus comme un seul   champ d'en-tête ayant la même sémantique   avant d'être représenté dans un   metavariable "

Ce qui me suggère que si vous avez plusieurs lignes d'en-tête avec la même clé, vous devez les réunir d'une manière ou d'une autre sur une seule ligne.

HTTP_COOKIE, à titre d'exemple, prend en charge cette fonctionnalité en concaténant toutes les paires clé = valeur en une seule ligne avec des points-virgules entre elles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top