Wireshark是最常用的网络抓包工具,其功能强大,是专业人士必备利器。我们经常用它进行网络的抓包,分析数据,api接口测试等。不过Wireshark学习成本较高,而且对于一些工作日常需要,我们可能只需要一款简单的工具。通过测试对比,我觉得Fiddler工具是一个不错的选择。
下载地址:
http://www.telerik.com/fiddler
当启动fiddler,程序将会把自己作为一个代理,所有的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前流经fiddler。
所有流经fiddler的网络请求,都会显示在页面中。
通过fiddler,可以很方便的进行移动端抓包,这里以iOS为例子,看如何实现实时抓包。
1. 打开fildder,点击Tools --> Telerik Fildder Options --> Connections
2. 勾选Allow remote computers to connect
3. 保存,并重启Fiddler程序(注意必须要重启)
此时,fildder已经在本地机器开了一个代理,我们需要做的是让手机连接到这个代理服务器。这里要保证手机和电脑在同一个局域网下面,否则手机是没有办法访问的。
修改手机wifi的代理地址,端口号是fiddler默认为8888,保存。
现在手机打开一个app,这里以墨迹天气为例子,我们从Fiddler可以看到,有墨迹api请求发送过来了,证明代理配置成功。
fiddler的一些基本使用介绍:
1. Inspectors tab下有很多查看Request或者Response的消息。其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header。
2. 在左边点击你想查看的一个或者多个请求,再点击右边的Statistics菜单,你就可以很轻松的查看到请求数、发送字节数等信息。如果你选择第一个请求和最后一个请求,还可以获得页面加载所消耗的总体时间,还可以从图表中分辨出哪些请求耗时最多,从而可以对页面的访问速度进行优化。
3. Fiddler最强大的功能莫过于设置断点,设置好断点后,你可以修复httpRequest的任何消息包括host,cookie或者表单中的数据。设置断点有两种方法。
第一种:打开fiddler点击Rules->Automatic Breakpoint->Before Requests(这种方法会中断所有的会话)
消除办法:点击Rules->Automatic Breakpoint->Disabled
第二种:在命令行中输入命令:bpu www.taobao.com(这种方法只会中断www.baidu.com)
消除办法:在命令行中输入bpu
4. 可以设置过滤条件,过滤选定的域名,多个域名之间使用分号分隔。
在移动web开发中我们也可以使用fildder工具,通常我们开发环境的域名是:
www.dev***.com
而这个实际是不存在的,我们通过修改电脑hosts文件,使之可以访问。但是手机修改host却很难,很多工程师直接通过手机访问电脑ip,来查看网站。问题在于如果我们有多个项目,host都指向了本地:
www.devproject.com
www.devstat.com
www.devshop.com
手机仅通过访问ip,很难区分不同网站。而一旦手机连接到了fildder,一切都变得简单了,手机访问www.dev***.com时,电脑会自动识别hosts将该请求访问到开发环境,这样一来,手机就相当于电脑的一部分一样,随时调试开发环境。
我现在比较喜欢fildder,感觉操作起来方便简单,希望对大家有帮助。
Leave a Reply