HTTP响应中的标头顺序是否重要?

Jos*_*son 60 http-headers

是否标题的顺序是否有意义

A: 1
B: 2
Run Code Online (Sandbox Code Playgroud)

VS

B:2
A:1
Run Code Online (Sandbox Code Playgroud)

我试图找出是否可以使用字典来存储标题列表,或者它是否需要某种列表或有序字典.

Ada*_*eld 67

不,对于具有不同名称的标题无关紧要.请参阅RFC 2616,第4.2节:

接收到具有不同字段名称的头字段的顺序并不重要.但是,首先发送通用标头字段,然后是request-header或response-header字段,并以entity-header字段结束是"良好做法".

但是,对于具有相同名称的多个标头,这很重要:

当且仅当该头字段的整个字段值被定义为以逗号分隔的列表[即,#(值)]时,具有相同字段名的多个消息头字段可以存在于消息中.必须可以将多个头字段组合成一个"字段名:字段 - 值"对,而不改变消息的语义,方法是将每个后续字段值附加到第一个字段值,每个字段值用逗号分隔.因此,接收具有相同字段名称的头字段的顺序对于组合字段值的解释是重要的,因此代理不能在转发消息时改变这些字段值的顺序.

  • 对于具有相同名称的多个标头,如果该标头多次出现不合法,则更为重要,例如`Content-Length`-不同的服务器将以不同的方式处理它。例如,一个将采用第一个,一个将采用最后一个,而另一个将是随机未定义的。因此,尽管有所作为,但您可能无能为力。 (2认同)

And*_*ite 8

标题的顺序无关紧要.可能存在HTTP标准的"较弱"实现,其中排序确实很重要,但它通常不应该.

这是一个描述HTTP标头的链接:

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