1、什么是Fiddler?
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一。它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器;反之,服务器端的所有相应,也都会先经过Fiddler,然后发送到客户端。基于这个机制,Fiddler支持所有可以设置HTTP代理为127.0.0.1:8888的浏览器和应用程序。使用Fiddler之后,web客户端和服务器的请求/相应过程如下:
2、为什么选择Fiddler?
1)Firebug最然可以抓包,但对于分析http请求的详细信息不够强大;模拟http请求的功能也较少,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
2)Wireshaerk是Windows上通用的抓包工具,当然也可以抓取http包,但同时也会抓取其他的网络包,对于只需要抓取http包的web调试来说,有些大材小用。
3)Httpwatch也是比较常用的http抓包工具,但是该工具只支持IE和FireFox浏览器(其他浏览器会有相应插件),对于要调试chrome浏览器上的http请求,稍显无力,而Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
3、怎样搭建Fiddler抓包环境?
1)安装Fiddler工具包:http://d585tldpucybw.cloudfront.net/docs/default-source/fiddler/fiddler4setup.exe?sfvrsn=36(下载fiddler4地址)
2)安装后打开fiddler,在菜单栏中找到tools点击进入Fiddler Options,如图:
3)在Fiddler Options对话框中,切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后的复选框,点击“OK”,如图:
4)此时在本地访问web服务器,在Fiddler上可以看到完成的请求和响应数据,如图:
4、怎样使用Fiddler抓取Android应用包?
完成上述3中的1-3操作。
1)在CMD命令行中输入:ipconfig(确定本地的IP是地址)
2)打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。
3)在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“保存”按钮。
4)然后启动android设备中的浏览器,访问百度的首页,在fiddler中可以看到完成的请求和响应数据,如图:
(具体Fiddler的使用命令、字段含义和主要功能将在下节介绍。。。)