Wireshark快速抓取HTTP数据包

一.前言

        在火狐浏览器和谷歌浏览器中可以非常方便的调试network(抓取HTTP数据包),IE也可以用HttpWatch,360系列浏览器也可以使用HttpAnalyzer等工具,我个人推荐Fiddler工具。当然如果从浏览器端跟踪HTTP请求,以上工具我觉得都已经很满足要求了。

        但要从网络层面来抓包,Linux下用tcpdump,Windows则强烈推荐用Wireshark,Wireshark只需通过合适的过滤和操作,也可抓取HTTP请求和响应,下面说明具体操作。

        假设在8080端口运行一个HTTP服务器,本例中使用Tomcat运行一个HTTP服务并侦听8080端口,实现一个简单的应用:

        http://localhost:8080/SpringMVC/greeting?name=zhangshan返回“Hi,zhangshan”;

        http://localhost:8080/SpringMVC/greeting?name=lisi返回“Hi,lisi”;

        http://localhost:8080/SpringMVC/greeting返回“Hi World”。

二.设置过滤条件

        过滤内容:http and ip.addr == 10.38.67.108 and tcp.port == 8080

        a.http:指定网络协议;

        b.ip.addr == 10.38.67.108:指定服务器ip地址,请根据实际情况替换。

        c.tcp.port == 8080,指定端口号,请根据实际情况替换。

Wireshark快速抓取HTTP数据包
        点击apply,可过滤得到两个数据包,分别是HTTP请求和HTTP响应。

Wireshark快速抓取HTTP数据包

三.查看TCP数据流——Follow TCP Stream

1.在任意数据包上右击,选择Follow TCP Stream

        该步骤可以过滤出和该HTTP数据包有关的TCP数据包,包括TCP 3次握手,TCP分片和组装等。

Wireshark快速抓取HTTP数据包
        选择Follow TCP Stream,就过滤出此次HTTP数据包有关的TCP数据包,包括TCP 3次握手,TCP分片和组装等,如下所示。

Wireshark快速抓取HTTP数据包
        通过弹出的对话框,我们可以详细地看到HTTP请求和响应内容。

Wireshark快速抓取HTTP数据包
        其中,红色背景字体为HTTP请求,蓝色背景字体为HTTP响应。

四.总结

        相对于火狐或谷歌浏览器中使用调试工具抓取HTTP数据包,使用wireshark要显得复杂些,但是也可以达到最终效果。这些操作分为两步,第一步设置合理的过滤条件,第二步在任意数据包中选择Follow TCP Stream。

参考文章:http://blog.csdn.net/xukai871105/article/details/31008635

相关推荐