67 votes

Est-ce que l'ordre des en-têtes dans une réponse HTTP est important?

Est-il toujours utile de savoir si l'ordre des en-têtes est

 A: 1
B: 2
 

contre

 B:2
A:1
 

J'essaie de savoir si je peux utiliser un dictionnaire pour stocker une liste d'en-têtes ou s'il doit s'agir d'une sorte de liste ou de dictionnaire commandé.

74voto

Adam Rosenfield Points 176408

Non, il n'est pas question pour les en-têtes avec des noms différents. Voir la RFC 2616, section 4.2:

L'ordre dans lequel les champs d'en-tête avec différents noms de champ sont reçu n'est pas significative. Cependant, c'est une "bonne pratique" pour envoyer général champs d'en-tête en premier, suivie par la demande de l'en-tête ou de la réponse- champs d'en-tête, et se terminant avec l'entité champs d'en-tête.

Il importe, cependant, pour plusieurs en-têtes avec le même nom:

Plusieurs message champs d'en-tête avec le même nom de zone PEUT être présents dans un message si et seulement si l'ensemble du champ-de la valeur pour que champ d'en-tête est défini comme une liste séparée par des virgules [c'est à dire, #(valeurs)]. Il DOIT être possible de combiner les multiples champs d'en-tête dans un "champ-nom: domaine-de la valeur" paire, sans changer la sémantique de l' message, en ajoutant par la suite, chaque champ de valeur pour le premier, chaque séparés par une virgule. L'ordre dans lequel les champs d'en-tête avec le même nom de zone sont reçus est donc important pour l' l'interprétation de la combinaison valeur d'un champ, et donc un proxy ne DOIT PAS modifier l'ordre de ces valeurs de champ lorsqu'un message est transmis.

9voto

Andy White Points 36586

L'ordre des en-têtes ne devrait pas avoir d'importance. Il peut y avoir des implémentations "plus faibles" de la norme HTTP où l'ordre a de l'importance, mais cela ne devrait pas en général.

Voici un lien qui décrit les en-têtes HTTP:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

3voto

Kirtan Points 11022

Les en-têtes HTTP sont indépendants les uns des autres et vous pouvez utiliser un dictionnaire pour les stocker sans vous soucier de leur ordre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X