1:介绍
Fiddle是一款免费的强大的数据抓包软件,用C#写的.它通过代理的方式获取程序http通讯的数据.我们可以利用它来检测网页和服务器的交互情况(查看向web服务器发送cookie的内容,下载内容的大小),可设置断点,监视,允许修改输入数据和输出数据,让你更了解交互过程的细节。同时可并提高前端工作效率。
先简单说下Fiddle的工作原理:它是以代理Web服务器的形式工作的,代理地址是127.0.0.1 默认端口8888 它的运行机制的实质就是在本机上监听8888端口的Http代理。
注意点:当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。如果Fiddler非正常退出,那就是Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler. 默认情况Fiddler不能嗅到localhost的网站,只要在localhost后面加上点号就可以了。eg:原本地址是http://localhost:8888/index.php 加个点号就变成http://localhost.:8888/index.php这样就哦了。
2:常用功能
Fiddle一般常用功能就是捕获会话,只要是能支持HTTP代理的任意程序的数据包都能被Fiddler捕获到,Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,将Firefox的代理改为127.0.0.1:8888即可监听数据了。
Firefox设置如下:工具→选项→网络设置→手动配置HTTP代理
如果觉得每次这样操作麻烦,而且用完每次还要去掉代理,推荐你使用firefox中的fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request和response。
记得启用插件:firefox tools->Add ons -> Extensions 启动 FiddlerHook。另外使用的时候将工具→Monitor with Fiddler→check Use Fiddle automatically 你就可以在浏览器右下角看见Fiddle:ON(auto)的标识了。
另外,Fiddle不会自动捕获HTTPS会话,需要手动到Fiddle的Fiddler Tool->Fiddler Options->HTTPS tab 将3个checkbox选中 所有弹出的对话框点解yes即可。
3:基本界面
接下来认识下Fiddle基本界面(本来可图形化可更清晰,无奈图片只允许上传500M):最上面左起像微信符号的那行是工具栏,这个微信符号是备注功能。点击即可插入批注。左侧纵向这列是会话列表。再向下黑色输入框是命令行工具栏,可进行搜索 eg:?.png 可查找出后缀为png格式的文件。键入:select js或select javascript可查询出所有的js文件。键入:cls 是清空所有会话列表,help 查看Fiddle帮助文档....还有很多哦~
双击左侧会话链接,右侧上方会出现相应的request监听列表,一般用的较多是Inspector tab 按快捷键F8即可.如果想修改request的信息可选择Inspector的Textview进行编辑。按f9出现composer可键入监听想监听的URl。右下方是对应会话response的消息。如果想更直观的查看可看WebForms Tab项,如果想查看Http的统计视图,点击show chart即可,这样你就可以看到一个Web页面的“总重量”页面文件及相关的js,css....可看到总共请求的次及多少字节被转化了。这样看来fiddle可用来做性能测试。补充下:查看Response的Headers,如果要是一个响应没包含Cache-Control,这个页面就不会被缓存在客户端。
4:调试
接下来教你如何设置断点和修改Request信息进行调试:
Rules→automatic→Breakpoints 选择before request、after request、Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改request信息,然后点击Run to Completion查看是否成功提交。或者在命令行键入: bpafter www.baidu.com、 bu www.baidu.com 取消直接键入对应的bpu/bpafter即可。
5:开启重定向
开启Enable automatic reaponses 和Unmatched requests passthrough 这两个可以上传js的HTTP请求重定向到本地文件。
测试是否上传成功:刷新浏览器,看下session列表,如果这个session的底色是灰色的就代表成功将这个请求重定向到本地文件。或者在本地的js中加入一句alter("test");若刷新session列表弹出alter框表示重定向本地文件成功。
6:TextWizard—Fiddle中自带的编码小工具,这个工具可以Encode和Decode string
7:将回话保存 进行分析,选中会话右键sava→response→response body....
8:Fiddlescript,Fiddler最复杂的莫过于script系统了
官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
举个栗子,将红框中的修改成自己的php文件或asp文件,并将注释去掉即可。或者根据自己需求编写相应的Js,可以无限尝试哦~
9:乱码问题
当你看到response中的html乱码别慌张,这是因为html被压缩了。有两种方式可解压。
(1)点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"
10:Fiddle 的限速功能
Rules→Performance→Simulate modem Speeds 勾选了就限网速了
11:图文解释 方便快速了解
同类工具:httpwatch, firebug, wireshark
以上些许了解,如需详情请查询 Fiddler的官方网站: www.fiddler2.com