很多时候,我们测试app过程中,发现了一些bug,比如我们订单的数据不对啊,本来应该是小王的,怎么显示小李?心里暗喜,给App端开发提交了一个bug,结果app端分析后回复:朋友,你技能有点差啊,这是服务端的问题,你为什么提交给我?顿时心里不开心,感觉被羞辱了,实际上,其实我们可以在发现类似问题时,先通过抓包工具例如Fiddler,抓包分析下就知道是谁的问题了。下面我们就来聊一聊这个超好用的抓包工具——Fiddler。
Fiddler 工具浅析
Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最常用的 HTTP 抓包工具之一。(Mac OS 建议采用 Charles)
它可以记录客户端和服务器之间的所有 HTTP 请求,并可以针对特定的 HTTP 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web 调试和网络请求分析的利器。
Fiddler 作为一个代理,自然客户端的所有请求都会先经过它,再转发给相应的服务器。反之,服务器端的所有响应,也都会先经过 Fiddler 然后发送给客户端。所以,Fiddler 支持所有可以设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序。
为什么选择Fiddler ?
1、本地化的工具,是一个使用本地 127.0.0.1:8888 的 HTTP 代理 (任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler)
2、Fiddler本身对http协议支持较好,且操作简单容易上手
3、具有抓包和分析功能,省去了安装其他工具的必要
4、工具本身功能强大,如劫包、篡改数据、限速等
Fiddler 的基本原理
本地应用与服务器之间所有的Request 和Response都将经过Fiddler,由Fiddler进行转发,此时Fiddler以代理服务器的方式存在。
由于所有的网络数据都会经过Fiddler,因此Fiddler能够截获这些数据,实现网络数据的抓包。
Fiddler的抓包过程
1、配置
此处将不再赘述Fiddler的下载和安装过程,具体可参考Fiddler的官方文档:http://docs.telerik.com/fiddler/。
2、简单抓包说明
3、Fiddler抓包配置
打开【Tools】--【Options】选项
4、配置抓取https请求
【Options】--【HTTPS】
5、修改默认监听端口
【Options】--【Connections】 默认端口号为8888
6、抓取数据
【Inspectors】--【WebForms】
【Inspectors】--【Raw】
7、请求session过滤
【Filters】 勾选 【use filters】
8、如何拦截请求
【Rules】--【AtuomaticBreakPoints】--【BeforRequets】
设置断点
9、篡改服务器端响应数据
【Rules】--【AtuomaticBreakPoints】--【After Responses】
10、抓包并设置自定义响应数据
【AutoResponer】--【Enable Rules】--【Add Rule】
11、使用fiddler模拟发送get请求接口
【Composer】面板设置
12、使用fiddler模拟发送post请求接口
13、修改HOST值
总结:
常用的抓包工具对比:
抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark。大家在选择抓包工具时,一定要定位好自己的需求。
Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。
Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力。
Fiddler是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
领取专属 10元无门槛券
私享最新 技术干货