Kafa sipariş PHP soru (ve genel olarak HTTP)

2 Cevap php

Header () fonksiyonu ile HTTP başlıklarını ayarlamak için PHP belirli bir düzen var mı?

Yani, örneğin ben ('Content-Language: tr') başlığı çağırmanız gerekir; başlıktan önce ('Content-Type: text / plain'); veya whathever sipariş Tamam olacak.

Benim tahminim sipariş sürece bütün o başlıkları outputted herhangi bir içerik daha önce ayarlanmış olarak önemli değil, ama sadece bu durumda emin olmak istiyorum ki ...

2 Cevap

Hayır, order of the header fields farketmez:

Farklılaşan alan adları ile başlık alanları alındığı sırası önemli değildir. Ancak, bu istek başlığı veya tepki-header alanları izleyen ilk genel başlık alanları göndermek için "iyi uygulama", ve varlık-başlık alanları ile biten.

Eğer aynı adı birden alanlarını yolluyoruz Sadece eğer. Onlar bir listede görünür gibi Sonra alan değerleri tedavi edilir:

Bu başlık alanı için tüm alan-değer [yani, #(values)] virgülle ayrılmış bir liste olarak tanımlanmış ise sadece ve sadece aynı alan adı ile birden fazla mesaj-başlık alanları bir mesajda mevcut olabilir. Bu bir içine birden çok başlık alanlarını birleştirmek mümkün ZORUNLU: İlk sonraki her alan değerini ekleyerek, mesajın semantik değiştirmeden, "alan adı alan değeri" çifti, her bir virgülle ayrılmış. Aynı alan-adı ile başlık alanları alındığı sırası nedenle kombine alan değerinin yorumlanmasına önemli olduğunu ve bir mesaj iletildiğinde, böylece bir vekil bu alan değerlerin sırasını değiştirmek ZORUNLU.

Bu nedenle aşağıdaki gibidir:

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

eşdeğer olacaktır:

Cache-Control: private, must-revalidate

Sipariş konuyu yaparsa Ve burada (burada Cache-Control) başlık alanının tanımına bağlıdır.

Farklılaşan alan adları ile başlık alanları alındığı sırası önemli değildir. Ancak, bu istek başlığı veya tepki-header alanları izleyen ilk genel başlık alanları göndermek için "iyi uygulama", ve varlık-başlık alanları ile biten.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 (Hypertext Transfer Protocol - HTTP/1.1)