我希望整合一个网站,显示完整的 HTTP请求标头和 HTTP响应标头,以加载网页本身。例如。如果有人浏览http://example.com/index.php,我希望显示以下内容:
HTTP请求
GET /index.php HTTP / 1.1
主持人:example.com
User-Agent:Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16)Gecko / 20110319 Firefox / 3.6.16
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
Accept-Language:en-us,en; q = 0.5
Accept-Encoding:gzip,deflate
Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7
保持活力:115
连接:保持活力HTTP响应
HTTP / 1.1 200 OK
日期:星期一,2011年12月21日10:20:46 GMT
服务器:Apache / 2.2.15(Red Hat)
X-Powered-By:PHP / 5.3.3
内容长度:1169
连接:关闭
内容类型:text / html; charset = UTF-8
我们能够使用以下PHP代码非常简单地显示Request标头:
print $_SERVER['REQUEST_METHOD']." ".$_SERVER['REQUEST_URI']." ".$_SERVER['SERVER_PROTOCOL']."<br>";
foreach (apache_request_headers() as $name => $value)
echo "$name: $value<br>";
但是在HTTP Response标头方面遇到了一些困难。任何人对我们如何做到这一点都有任何想法?如果你有一个在Perle或CGI中工作的方法,那么它不必是PHP。
要明确,我并不是指将 HTTP响应设置为特定的任何内容,只是显示 Web服务器为加载页面而提供的响应。< / p>
答案 0 :(得分:3)
您想使用headers_list()
http://www.php.net/manual/en/function.headers-list.php
headers_list()将返回要发送到浏览器/客户端的标头列表。要确定这些标头是否尚未发送,请使用headers_sent()。
答案 1 :(得分:2)
这就是问题,在PHP(或任何服务器端语言)已经完成其工作之后生成响应头。
用英文说它就像邮递员给你递了一封信,然后你要他解释递给你这封信的过程。他可能只会看着你这个哑巴。
您需要使用客户端语言(即JavaScript)来执行此任务。
答案 2 :(得分:1)
使用PHP获取发送到Web服务器的标头。
http://www.php.net/manual/en/function.apache-request-headers.php
使用JavaScript获取Web服务器发送的标头。我建议使用jQuery。
http://api.jquery.com/jQuery.ajax/#jqXHR
通过这种方式,您可以确保获得Web服务器或浏览器接收的所有标头。
答案 3 :(得分:0)