使用PHP在网页上显示HTTP响应

时间:2011-12-21 18:23:38

标签: php html http-headers httpresponse

我希望整合一个网站,显示完整的 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>

4 个答案:

答案 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)