tags:

views:

513

answers:

4

Is it ever meaningful whether the order of headers is

A: 1
B: 2

vs

B:2
B:1

I'm trying to figure out if I can use a dictionary to store a list of headers or if it needs to be some kind of list or ordered dictionary.

A: 

Actually it should matter..

Chand
How would it matter?
Kirtan
What kind of answer is this?
Seb
An incomplete/inaccurate answer! Not downvoting this, however.;-)
Cerebrus
+1  A: 

HTTP Headers are independent of each other and you can use a dictionary to store them without worrying about their order.

Kirtan
Not true for multiple occurances of the same header.
Eddie
+11  A: 

No, it does not matter for headers with different names. See RFC 2616, section 4.2:

The order in which header fields with differing field names are received is not significant. However, it is "good practice" to send general-header fields first, followed by request-header or response- header fields, and ending with the entity-header fields.

It DOES matter, however, for multiple headers with the same name:

Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and thus a proxy MUST NOT change the order of these field values when a message is forwarded.

Adam Rosenfield
ASP.net uses a plain NameValueCollection to store the response headers.
David
+3  A: 

The order of the headers should not matter. There might be "weaker" implementations of HTTP standard where the ordering does matter, but it shouldn't in general.

Here's a link that describes HTTP headers:

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

Andy White

related questions