2010-08-22 47 views
2

我有一個PHP腳本讀取文件並將其輸出到客戶端。這是一個CSS文件,所以我用header()來設置Content-Type,Content-LengthCache-Control。如果我添加一個製作好的標題,我可以使用防篡改數據來看它,所以它看起來基本上可以工作(並且瀏覽器可以很好地收到文件)。我不明白的是,我還看到許多其他標題(例如,Expires),而某些內容實際上會更改我的Content-Length的值 - 可能是因爲它是Content-Encoding: gzip。在php.ini它有zlib.output_compression = Off,所以我不確定在修改標題的最後一步中跳入了什麼。任何人都可以爲我解釋這個嗎?HTTP頭字段從哪裏來的PHP輸出(除了頭())

謝謝你的時間。

回答

1

這些頭文件來自網絡服務器。 PHP被調用來傳遞內容(以及任何額外的頭文件),但它是使用自己的規則和配置設置進行傳遞的Web服務器。

+0

感謝您的快速回復。因此,設置最小標題並讓Web服務器將其打包爲有效的HTTP響應是完全可以接受的/正常的? – Jes 2010-08-22 12:04:52

+0

@Jes完全取決於你想要做什麼!通常,答案是肯定的:Web服務器通常服務於健康的默認標題。但是在某些情況下你可能需要'content-type'和'cache-control'。例如,如果您在以.php結尾的PHP腳本中動態生成CSS樣式表,則需要發送「text/css」內容類型,否則Firefox將不會接受它。這真的取決於情況。 – 2010-08-22 12:07:30

+0

謝謝 - 非常有幫助。 – Jes 2010-08-22 12:11:24