2009-04-15 8 views

Antwort

53

Nein, es spielt keine Rolle für Header mit anderen Namen. Siehe RFC 2616, Abschnitt 4.2:

Die Reihenfolge, in der Header-Felder mit unterschiedlichen Feldnamen empfangen werden, ist nicht signifikant. Es ist jedoch "bewährte Methode", zuerst allgemeine Headerfelder an die Felder zu senden, gefolgt von den Headerfeldern request-header oder response- und endend mit den Feldern für die Entitätsheader. wenn die gesamte sein kann, wenn und nur

Mehrere Message-Header-Felder mit dem gleichen Feldnamen in einer Nachricht:

es keine Rolle spielt, jedoch für mehrere Header mit dem gleichen Namen Feld-Wert für das Header-Feld ist definiert als eine durch Kommas getrennte Liste [dh # (Werte)]. Es MÜSSEN möglich sein, die multiple Header-Felder zu einem "field-name: field-value" -Paar zu kombinieren, ohne die Semantik der -Nachricht zu ändern, indem jeder nachfolgende Feldwert an den ersten, jeweils durch a getrennten angehängt wird Komma. Die Reihenfolge, in der Header-Felder mit dem gleichen Feldnamen empfangen werden, ist daher von Bedeutung für die Interpretation des kombinierten Feldwerts, und daher darf ein Proxy die Reihenfolge dieser Feldwerte NICHT ändern, wenn eine Nachricht weitergeleitet wird.

+0

ASP.net verwendet eine einfache NameValueCollection zum Speichern der Antwortheader. – David

+1

Bei mehreren Headern mit dem gleichen Namen ist es sogar noch wichtiger, wenn es nicht zulässig ist, dass diese Kopfzeile mehrmals erscheint, z. 'Content-Length' - verschiedene Server werden anders damit umgehen. Z.B. einer wird den ersten nehmen, einer wird den letzten nehmen, und ein anderer wird zufällig undefiniert sein. Obwohl es einen Unterschied macht, gibt es möglicherweise nicht viel, was Sie dagegen tun können. – AviD

+0

(Oh dang, hab gerade das Datum notiert das du das gepostet hast ...!: -O Sorry, ich bin gerade drüber gestolpert ...) – AviD

2

HTTP-Header sind unabhängig voneinander und Sie können ein Wörterbuch verwenden, um sie zu speichern, ohne sich über ihre Reihenfolge Gedanken machen zu müssen.

+2

Nicht zutreffend für mehrere Vorkommen desselben Headers. – Eddie

6

Die Reihenfolge der Header sollte nicht von Bedeutung sein. Es könnte "schwächere" Implementierungen des HTTP-Standards geben, bei denen die Reihenfolge von Bedeutung ist, aber dies sollte im Allgemeinen nicht der Fall sein.

Hier ist ein Link, der HTTP-Header beschreibt:

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

0

Es ist auch Sache könnte, wenn set-cookie mehrmals für das gleiche Cookie festgelegt wird:

"Set-Cookie: COOKIE1=VALUE1; ... 
"Set-Cookie: COOKIE1=VALUE2; ... 

In diesem Fall wird COOKIE1 eingestellt werden zu VALUE2, und wenn die Reihenfolge geändert wird:

"Set-Cookie: COOKIE1=VALUE2; ... 
"Set-Cookie: COOKIE1=VALUE1; ... 

COOKIE1 wird auf VALUE1 gesetzt

Verwandte Themen