what is Fiddler?
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示:
Fiddler是一个能够监听本地 127.0.0.1:8888端口 的 HTTP 代理服务器,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
fiddler的工作原理是什么呢?其实,每当打开fiddler的时候,它就会自动在你的电脑上把“127.0.0.1:8888”设置为代理服务器,并且fiddler会一直监听8888端口,这样的话,你的电脑上所有8888端口发出的请求或者收到的响应,都会经过这个代理服务器。
运行fiddler之后,就会在本地打开8888端口,网络数据流通就会通过fiddler进行中转,这时我们就可以监控http/https数据流的记录,并加以分析,甚至我们可以修改发送和接收数据。
Fiddler为何默认监听所有的请求?
打开fiddler4工具,第一次打开,fiddler4会自动设置自己为系统代理。IE和chrome浏览器代理都是自动开启。可以查看浏览器代理:
浏览器菜单栏上:(以IE为例)工具—>Internet选项—>连接—>局域网设置—>高级。发现IE已经自动开启了127.0.0.1:8888。
(以chrome为例)设置—>(系统)打开代理服务器—>局域网设置—>高级。发现chrome已经自动开启了127.0.0.1:8888。
因此打开fiddler4后就自动可以捕获这两个浏览器上的请求了。
Firefox浏览器是需要手动设置代理的。可以查看浏览器代理:浏览器菜单栏上:工具—>Internet选项—>连接—>局域网设置—>高级代理。发现代理并未被开启,此时手动设置127.0.0.1:8888即可。
三、自己设置浏览器代理
默认情况下Fiddler会自动开启IE、chrome等浏览器代理服务,这样的话列表中会显示很多我们实际上不需要的请求。我们可以自己来指定监听哪个浏览器。打开fiddler4工具,点击【Tools】-【Options】-【Connections】
Act as system proxy on startup:默认勾选,当启动fiddler的时候就会设置为系统代理。取消勾选,点击确认然后重启fiddler。
然后自己手动设置浏览器代理。(以IE为例)工具—>Internet选项—>连接—>局域网设置—>高级代理。手动设置127.0.0.1:8888即可。
再次查看左侧请求栏的请求数据时,发现只有IE浏览器发出的请求才会被捕获。