【发布时间】:2023-12-08 15:29:01
【问题描述】:
我希望建立一个网站,以显示完整的 HTTP 请求标头 和 HTTP 响应标头 以加载页面本身。例如。如果有人浏览到 http://example.com/index.php ,我希望显示以下内容:
HTTP 请求
GET /index.php HTTP/1.1
主机:example.com
用户代理: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
接受语言:en-us,en;q=0.5
接受编码:gzip,deflate
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7
保活:115
连接:保持活动HTTP 响应
HTTP/1.1 200 正常
日期:格林威治标准时间 2011 年 12 月 21 日星期一 10:20:46
服务器:Apache/2.2.15 (Red Hat)
X-Powered-By:PHP/5.3.3
内容长度:1169
连接:关闭
内容类型:文本/html;字符集=UTF-8
使用以下 PHP 代码,我们能够相当简单地显示请求标头:
print $_SERVER['REQUEST_METHOD']." ".$_SERVER['REQUEST_URI']." ".$_SERVER['SERVER_PROTOCOL']."<br>";
foreach (apache_request_headers() as $name => $value)
echo "$name: $value<br>";
但是在使用 HTTP 响应标头时遇到了一些困难。有人对我们如何做到这一点有任何想法吗?如果你有一个可以在 Perle 或 CGI 或其他中工作的方法,它不一定是 PHP。
为了清楚起见,我的意思不是设置 HTTP 响应为任何特定的,只是 显示 Web 服务器提供的响应以加载页面。
【问题讨论】:
-
啊,我在原始评论中有页面的最终目标,但是当我第一次尝试发布时它出错了,忘记重新包含它。该页面的最终目标是位于负载均衡器后面的网络服务器上,以便我们可以查看/测试/训练负载均衡器如何影响 HTTP 流。
-
你能用Javascript来显示这些信息吗,对你来说会容易得多。
-
您显然无法从 PHP 访问响应标头,因为它们将在您的脚本完成后添加。甚至代理服务器也可以在您的服务器不知情的情况下将自己的标题行添加到响应中。这只能在客户端完成。
标签: php html http-headers httpresponse