2010-08-22 50 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