如何在php中获取当前页面的所有HTTP响应头信息

3

headers_list()apache_response_headers()返回的实际响应头列表大大缩减,即使在headers_sent()get_headers()之后也会发出另一个HTTP请求。

那么,如何获取要发送到当前页面的完整响应头列表,或者这些由服务器设置的其他响应头是否仅在PHP完成后才设置?

2个回答

6
托管Web服务器可以自由添加标头。例如,它可以透明地压缩php的输出,设置Strict-Transport-Security标头等。在某些设置中(例如Wikimedia),请求也会被另一台机器上的另一个HTTP服务器代理以允许缓存。
因此,无法获取发送的完整HTTP标头列表。你为什么要这样做呢?

这实际上是一个调试/好奇心练习。我想我有点惊讶于我在当前请求中能获得的信息如此之少 - 但这是有道理的。 - MrWhite

1

问题是大多数头信息是由服务器发送的,而不是 PHP 脚本本身发送的。当然,您可以在脚本内部发送头信息,但这并不意味着您会得到页面加载后发送的所有头信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接