是否有可能通过Apache转储整个HTTP请求? 我需要跟踪所有传入请求的HTTP头。 怎么做?
我想你想要什么,而不是Apache可能是一个数据包分析器 ,也被称为数据包嗅探器。 其中两个最stream行的可能是TCPDump和Wireshark ,它们都是免费的,并且具有用于Windows和* nix操作系统的版本。 这些将显示所有stream量进入界面,而不仅仅是Apache看到的。 但是您可以使用filter来限制到指定的端口,例如http。
tcpdump的:
从服务器运行的以下命令将显示所有目标为端口80的数据包:
sudo tcpdump -s 0 -X 'tcp dst port 80'
大写X开关以hex和ASCII码转储有效载荷。 带0的s开关意味着获得整个数据包。 'tcp dst port 80'表示过滤并仅显示目的地为tcp头部中的端口80的数据包。
Wireshark的:
对于用户更友好的版本,如果你有一个GUI运行,考虑wireshark(正式名称为飘渺)。
也许倾销cookies ? 否则 – 看看mod_dumpio 。
使用ngrep tcpdump和grep的混合,基本的数据包嗅探很容易。 在某些情况下,如果您希望了解Web浏览器如何与Web服务器进行通信,并检查HTTP标头。
在这个例子中,像这样在webserver上运行一个ngrep:
$ ngrep port 80
您还可以select通过以下方式过滤http请求到“GET /”端口80:
$ ngrep -q '^GET .* HTTP/1.[01]'
客户端,有一个有用的工具,名为篡改数据它是一个Firefox扩展,使您能够查看,logging甚至修改传出的HTTP请求。
你可以在这里find更多的信息
而不是使用tcpdump或wireshark,请使用tcpflow。 这是tcpdump的替代,但为每个连接的每一边创build一个文件,所以你不必尝试自己解码stream。
您还可以使用Web控制台(tools-> web developer-> web console)在Firefox浏览器上查看标题,请求,响应等信息。