首页 > 代码库 > fiddler操作说明
fiddler操作说明
转:参考用
目录
一、Fiddler的工作原理3
二、Fiddler的基本界面5
1.Fiddler的HTTP统计视图7
2.QuickExec命令行的使用7
三、Fiddler中设置断点修改Request8
四、Fiddler中创建AutoResponder规则10
五、Fiddler中如何过滤会话12
1.抓包13
2.保存记录13
3.回放13
六、Fiddler中会话比较功能13
七、Fiddler中提供的编码小工具14
八、Fiddler中查询会话15
九、Fiddler的script系统15
十、Response 是乱码的17
十一、使用fiddler配置host18
十二、查看每次请求的server ip 和端口18
十三、使用Fiddler构造Http请求Post包20
十四、Android利用Fiddler进行网络数据抓包22
1.PC端安装Fiddler22
2.配置PC端Fiddler和手机22
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展
你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能帮助你了解HTTP协议.
Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具
一、Fiddler的工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.
同类的其它工具:httpwatch, firebug, wireshark
Fiddler如何捕获HTTPS会话
默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS tab
选中checkbox, 弹出如下的对话框,点击"YES"
点击"Yes" 后,就设置好了
二、Fiddler的基本界面
Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图
1.Fiddler的HTTP统计视图
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话的总信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化
2. QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
select html/css/javascript,表示查找xx类型的请求
?.png 用来选择png后缀的图片
=200 用来选择状态码为200的请求
bpu 截获request
三、Fiddler中设置断点修改Request
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpu www.sogou.com (这种方法只会中断www.sogou.com)
如何消除命令呢? 在命令行中输入命令 bpu
看个实例,模拟查询, 在IE中打开www.sogou.com,输入查询词5,用Fiddler中断会话,query修改成sogou。
1. 用IE 打开www.sogou.com
2. 打开Fiddler, 在命令行中输入bpu www.sogou.com
3. 输入查询词 5,点击搜索
4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab查询词 sogou,然后点击Run to Completion 如下图所示。
5. 查询结果页面是 查询词为sogou的页面
Fiddler中设置断点修改Response
当然Fiddler中也能修改Response
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->After Response (这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpafter www.sogou.com (这种方法只会中断www.sogou.com)
如何消除命令呢? 在命令行中输入命令 bpafter,
四、Fiddler中创建AutoResponder规则
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
看个实例.
1. 打开搜索结果页,找到要测试的图片保存到本地,并且对图片做些修改。
2. 打开Fiddler 找到logo图片的会话, http://img01.store.sogou.com/app/a/10010038/957729cdc4f3304a5d3cec4b324f3613, 把这个会话拖到AutoResponer Tab下
3. 选择Enable automatic reaponses 和Unmatched requests passthrough
4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片. 最后点击Save 保存下。
5. 再用IE打开搜索结果页, 你会看到首页的图片用的是本地的。
原图的搜索音乐变成了潘多拉的图片:
修改后:
五、Fiddler中如何过滤会话
每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。
1. 抓包
启动fiddler,不需要对浏览器做任何配置,自动开启了抓包的功能,fiddler状态栏 是开启开关,值得一提的是fiddler做的比较人性化,启动时候自动配置浏览器的proxy项。
在Tools-》WinNet Options这里可以查看,也可以在IE选项里面查看。fiddler在退出的时候自动关闭
另外我们一般情况下不需要看所有的http请求,需要过滤抓到的包:根据需要对url关键字或内容关键字进行过滤,这里就需要使用filter配置了
2. 保存记录
选择左侧栏的session;然后File-》Save保存,fiddler使用.saz文件扩展名
3. 回放
选择file –》 load archive;点击工具栏replay,回放;
六、Fiddler中会话比较功能
选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)
如果没有windiff,可以自定义对比工具,使用自己比较喜欢的工具。
在菜单 Tools->Fiddler Options->Tools, 修改”File Diff Tool:”
七、Fiddler中提供的编码小工具
点击Fiddler 工具栏上的TextWizard, 这个工具可以Encode和Decode string.
八、Fiddler中查询会话
用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示
九、Fiddler的script系统
Fiddler最复杂的莫过于script系统了 官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下图
安装成功后Fiddler 就会多了一个Fiddler Script tab, 如下图
在里面我们就可以编写脚本了, 看个实例 让所有cnblogs的会话都显示红色。
把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script"
if (oSession.HostnameIs("www.sogou.com")) {
oSession["ui-color"] = "red";
}
这样所有的sogou的会话都会显示红色
十、Response 是乱码的
有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。
1. 点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"
2. 选中工具栏中的"Decode"。 这样会自动解压缩。
十一、使用fiddler配置host
这个功能主要作用就是不需要每次配置hosts都到windows目录下去修改hosts文件;可以直接方便在fiddler界面里面配置即可;方便快速的配置自己的测试host。
十二、查看每次请求的server ip 和端口
我们知道,每个域名会对应多个ip,我们一般不能直接看出这次请求是发到那台机器上去了,每次分配请求ip是dns轮询的,有时候想要确定请求是发到哪个机器上。Fiddler支持脚本开发功能,扩展自定义菜单。这里使用脚本加上显示ip的功能。
修改完后,重启fiddler;
抓包,选择一条session,右键选择Properties,这样就会打开一个记事本,里面有X-HOST指示server的IP,如下图:
如果觉得每次点击打开一个记事本比较麻烦,还可以把IP显示在Session列里面,按照下面步骤去配置
Step1: 打开菜单Rules-》customize Rules; 打开CustomRules.js;
Step2:查找” var m_AlwaysFresh: boolean = false;”这一行;添加这段代码
public static RulesOption("Show Server IP", "Per&formance")
var m_ShowServerIP: boolean = false;
如图:
step3:找到OnBeforeResponse函数,添加下面这段代码
if (m_ShowServerIP){
oSession[‘ui-customcolumn‘] += ‘ ‘ + oSession.m_hostIP;
}
如图所示
Step4:配置完后,重启fiddler,打开Rules-》Performance-》show server IP;可以看到每个request的ip
十三、使用Fiddler构造Http请求Post包
开发的时候有时候想测试Post的接口,但是无法使用浏览器测试,因为浏览器只能输入GET请求;所以经常需要自己写一些代码或使用firefox一些插件来完成post请求动作;现在有fiddler横空出世,这一切都不再是问题。使用composer构造Post请求,点击execute发送请求,如下图
十四、Android利用Fiddler进行网络数据抓包
主要介绍Android手机上如何进行网络数据抓包,比如我们想抓某个应用(微博、微信、墨迹天气)的网络通信请求就可以利用这个方法。
相对于tcpdump配合wireshark抓包的优势在于:
(1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂,Fiddler的UI更简单明了 (5) 可以查看https请求。如果你坚持使用tcpdump也可见:利用tcpdump和wireshark抓取网络数据包。
PS:需要1台PC做辅助,且PC需要与手机在同一局域网内或有独立公网ip
1.PC端安装Fiddler
下载地址:Fiddler.exe,下面是Fiddler的简单介绍:
Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。
Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以如果需要监听PC端Chrome网络请求,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。
2. 配置PC端Fiddler和手机
(1) 配置Fiddler允许监听https
打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。
(2) 配置Fiddler允许远程连接
如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
(3) 配置手机端
Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip为10.0.4.37,如下图
手机端浏览器访问http://10.0.4.37:8888,即Fiddler所在机器ip加上端口,代理上网。显示如下图页面:
点击FiddlerRoot certificate下载证书并重命名
如何未设置锁屏密码,可能会提示”您需要先设置锁屏密码才能使用凭据存储”,点击确定进行设置。
之后打开手机连接到同一局域网的wifi,并修改该wifi网络详情->显示高级选项,选择手动代理设置,主机名填写
Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图:
这时,手机上的网络访问在Fiddler就可以查看了,如下图微博和微信的网络请求:
可以双击上图某一行网络请求,右侧会显示具体请求内容(Request Header)和返回内容(Response Header and Content),如下图:
可以发现Fiddler可以以各种格式查看网络请求返回的数据,包括Header, TextView(文字), ImageView(图片), HexView(十六进制),WebView(网页形式), Auth(Proxy-Authenticate Header), Caching(Header cache), Cookies, Raw(原数据格式), JSON(json格式), XML(xml格式)很是方便。
停止网络监控的话去掉wifi的代理设置即可,否则Fiddler退出后手机就上不网了哦。
如果需要恢复手机无密码状态,Android端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。
fiddler操作说明