代码之家  ›  专栏  ›  技术社区  ›  AlexV

PHP中的头顺序问题(通常是HTTP)

  •  5
  • AlexV  · 技术社区  · 15 年前

    php中是否有使用header()函数设置http头的特定顺序?

    我的意思是,例如,我必须调用header(“content-language:en”);在header(“content-type:text/plain”)之前;或者什么版本的订单可以。

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

    2 回复  |  直到 15 年前
        1
  •  8
  •   Gumbo    15 年前

    不, order of the header fields 无所谓:

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

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

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

    所以下面是:

    Cache-Control: private
    Cache-Control: must-revalidate
    

    相当于:

    Cache-Control: private, must-revalidate
    

    这里取决于标题字段的定义(这里 缓存控制 )如果订单真的重要的话。

        2
  •  4
  •   Thomas Müller    15 年前

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

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 超文本传输协议.HTTP/1.1