PHP中的标题顺序问题(以及一般的HTTP)

PHP中的标题顺序问题(以及一般的HTTP),php,http,http-headers,Php,Http,Http Headers,在PHP中,使用header()函数设置HTTP头是否有特定的顺序 我的意思是,例如,我必须调用header('Content-Language:en');标题前('Content-Type:text/plain');或者随便点什么都可以 我的猜测是,只要在输出任何内容之前设置好所有标题,顺序就不重要了,但我只想确定是这样的…不,顺序无关紧要: 接收具有不同字段名的标题字段的顺序并不重要。然而,“良好的做法”是首先发送常规头字段,然后发送请求头或响应头字段,最后发送实体头字段 仅当发送多个同名字

在PHP中,使用header()函数设置HTTP头是否有特定的顺序

我的意思是,例如,我必须调用header('Content-Language:en');标题前('Content-Type:text/plain');或者随便点什么都可以

我的猜测是,只要在输出任何内容之前设置好所有标题,顺序就不重要了,但我只想确定是这样的…

不,顺序无关紧要:

接收具有不同字段名的标题字段的顺序并不重要。然而,“良好的做法”是首先发送常规头字段,然后发送请求头或响应头字段,最后发送实体头字段

仅当发送多个同名字段时。然后,将字段值视为显示在一个列表中:

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

因此,以下是:

Cache-Control: private
Cache-Control: must-revalidate
相当于:

Cache-Control: private, must-revalidate
这里它取决于标题字段(这里是缓存控制)的定义,如果顺序确实重要的话

接收具有不同字段名的标题字段的顺序并不重要。然而,“良好的做法”是首先发送常规头字段,然后发送请求头或响应头字段,最后发送实体头字段

超文本传输协议(HTTP/1.1)