2010-01-19 24 views
5

在PHP中使用header()函數設置HTTP標題有特定的順序嗎?我的意思是例如我必須調用標題('Content-Language:en');在標題之前('Content-Type:text/plain');或任何順序都可以。在PHP(和HTTP一般)中的標題順序問題

我的猜測是,順序並不重要,只要任何內容​​輸出之前,他頭被設置所有,但我只是想確保這樣的話......

回答

8

沒有,order of the header fields不問題:

接收到不同字段名稱的頭字段的順序並不重要。但是,首先發送通用報頭字段,然後是請求報頭或響應報頭字段,並以實體報頭字段結束爲「良好做法」。

只有當您發送多個相同名稱的字段。然後字段值被視爲將出現在一個列表中:

當且僅當該標題字段的整個字段值具有相同字段名的多個消息標題字段可以存在被定義爲逗號分隔列表[即,#(values)]。它必須能夠將多個頭字段組合成一個「字段名稱:字段值」對,而不改變消息的語義,通過將每個後續字段值附加到第一個字段值,每個字段值都用逗號分隔。因此,接收具有相同字段名的頭字段的順序對於組合字段值的解釋是重要的,因此當轉發消息時,代理務必不改變這些字段值的順序。

所以下面:

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

將相當於:

Cache-Control: private, must-revalidate 

在這裏,它取決於頭字段的定義(這裏的Cache-Control)如果訂單確實很重要。