首页 > 代码库 > fiddler操作说明

fiddler操作说明

转:参考用

 

 


 
 

目录

一、Fiddler的工作原理3

二、Fiddler的基本界面5

1FiddlerHTTP统计视图7

2QuickExec命令行的使用7

三、Fiddler中设置断点修改Request8

四、Fiddler中创建AutoResponder规则10

五、Fiddler中如何过滤会话12

1.抓包13

2.保存记录13

3.回放13

六、Fiddler中会话比较功能13

七、Fiddler中提供的编码小工具14

八、Fiddler中查询会话15

九、Fiddlerscript系统15

十、Response 是乱码的17

十一、使用fiddler配置host18

十二、查看每次请求的server ip 和端口18

十三、使用Fiddler构造Http请求Post20

十四、Android利用Fiddler进行网络数据抓包22

1PC端安装Fiddler22

2.配置PCFiddler和手机22

 

 

 

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的httphttps请求,允许你监视,设置断点,甚至修改输入输出数据,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. 如下图

 

 

 

1FiddlerHTTP统计视图

通过陈列出所有的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,  这个工具可以EncodeDecode string.

 

八、Fiddler中查询会话

用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示

 

九、Fiddlerscript系统

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,我们一般不能直接看出这次请求是发到那台机器上去了,每次分配请求ipdns轮询的,有时候想要确定请求是发到哪个机器上。Fiddler支持脚本开发功能,扩展自定义菜单。这里使用脚本加上显示ip的功能。

 

修改完后,重启fiddler

 

抓包,选择一条session,右键选择Properties,这样就会打开一个记事本,里面有X-HOST指示serverIP,如下图:

 

 

 

如果觉得每次点击打开一个记事本比较麻烦,还可以把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;可以看到每个requestip

 

十三、使用Fiddler构造Http请求Post

开发的时候有时候想测试Post的接口,但是无法使用浏览器测试,因为浏览器只能输入GET请求;所以经常需要自己写一些代码或使用firefox一些插件来完成post请求动作;现在有fiddler横空出世,这一切都不再是问题。使用composer构造Post请求,点击execute发送请求,如下图

 

 

 

十四、Android利用Fiddler进行网络数据抓包

主要介绍Android手机上如何进行网络数据抓包,比如我们想抓某个应用(微博、微信、墨迹天气)的网络通信请求就可以利用这个方法。

相对于tcpdump配合wireshark抓包的优势在于:

(1)无需root (2)AndroidIphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂,FiddlerUI更简单明了 (5) 可以查看https请求。如果你坚持使用tcpdump也可见:利用tcpdumpwireshark抓取网络数据包。

 

PS:需要1PC做辅助,且PC需要与手机在同一局域网内或有独立公网ip

1PC端安装Fiddler

下载地址:Fiddler.exe,下面是Fiddler的简单介绍:

Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的httphttps请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。

Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 对于PCFiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以如果需要监听PCChrome网络请求,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。

 

2. 配置PCFiddler和手机

(1) 配置Fiddler允许监听https

打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https trafficignore server certificate errors两项,如下图:

 

第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

 

(2) 配置Fiddler允许远程连接

如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:

 

(3) 配置手机端

Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip10.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操作说明