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

Ale*_*exV 5 php http http-headers

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

我的意思是例如我必须调用header('Content-Language:en'); 在标题之前('Content-Type:text/plain'); 或者它的顺序是好的.

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

Gum*_*mbo 8

不,标题字段顺序无关紧要:

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

仅当您发送多个同名字段时.然后将字段值视为出现在一个列表中:

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

所以以下内容:

Cache-Control: private
Cache-Control: must-revalidate
Run Code Online (Sandbox Code Playgroud)

相当于:

Cache-Control: private, must-revalidate
Run Code Online (Sandbox Code Playgroud)

这里它取决于头字段的定义(这里是Cache-Control),如果顺序很重要.