Fiddler用法整理
目 录
1 Fiddler的基本介绍
1.1 下载安装
1.2 适用平台
2 Fiddler的工作原理
3 同类工具
4 捕获非IE浏览器的会话
5 捕获不同请求的设置方法
5.1 Web HTTPS会话
5.2 手机app请求
5.3 手机APP的HTTPS请求
6 基本界面
6.1 会话列表图标的含义
7 QuickExec命令行的使用
8 HTTP统计视图
9 Fiddler中设置断点
9.1 修改Request
9.2 修改Response
9.3 拦截来自某个网站所有请求
10 模拟服务端响应
11 过滤会话
12 会话比较
13 查询会话
14 保存会话
15 网速限制
16 常用插件
1. Fiddler的基本介绍
Fiddler的官方网站:
https://www.telerik.com/fiddler
Fiddler是最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,以及修改输入输出数据。
1.1 下载安装:
官网下载速度较慢,可以通过360软件管家下载。安装时一直下一步即可。
1.2 适用平台

2. Fiddler的工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址为127.0.0.1,默认端口是8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。


3. 同类工具
同类的工具有:
Burpsuit,Charles,Httpwatch,Firebug,Wireshark,Hping,Ostinato,Scapy,Libcrafter,
Yersinia,packETH,Colasoft Packet Builder,
Bit-Twist,Libtins,Netcat,WireEdit,
epb – Ethernet Packet Bombardier,Fragroute,
Mausezahn,EIGRP-tools
4. 捕获非IE浏览器的会话
Fiddler启动时会把IE等浏览器的代理自动设为127.0.0.1:8888。非IE浏览器可以自行检查其代理设置。
5. 捕获不同请求的设置方法
Web HTTPS会话
默认下,Fiddler不会捕获HTTPS会话,需要打开Tools->Options->HTTPS tab进行如下设置。

app请求
第一步,设置代理
打开fiddler,选择Tools -> Options -> Connections ,勾选 Allow_remote computers to connect。然后点击ok按钮,这样就完成了代理的设置。重启fiddler。

让手机和PC在同一个局域网下面,如果PC是笔记本,它们连接同一个wifi网络即可。找到PC的IP地址,如下图,运行ipconfig,得到192.168.0.103:

第二步 手机连接代理服务器
长按已连接的wifi网络,点击修改网络。在代理上面选择手动,IP填写上面获取的192.168.0.102,端口填写Fiddler的监听端口8888,之后点击保存。

第三步
此时,我们在手机上面,打开被测试移动APP,就可以在Fiddler里看到捕获的会话了。
APP的HTTPS请求
第一步:首先对Fiddler进行设置。
打开工具栏->Tools->Options->HTTPS 选项卡,进行如下设置:

第二步:手机安装Fiddler证书。
打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。

接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。
下载安装完成好后,我们用手机客户端或者浏览器发出HTTPS请求,Fiddler就可以截获到了,就跟截获普通的HTTP请求一样。
iOS中安装的证书需要认证,否则无法使用,ios设置证书认证:设置-->通用--->描述文件与设备管理 。找到刚才安装的证书点击信任。
第三步,设置手机代理。设置方式与5.2中描述的相同。
6. 基本界面

会话颜色代表什么意思:状态码的颜色
图标含义:如下图


7. QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有:
- help 打开官方的使用页面介绍,所有的命令都会列出来 
- cls 清屏 (Ctrl+x 也可以清屏) 
- select 选择会话的命令 
- ?.png 用来选择png后缀的图片 
- bpu 截获request 
8. Fiddler的HTTP统计视图
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。

9. 设置断点
修改Request
为什么要设置断点? 断点是什么?
比如一个购买的金额输入框,输入框前端做了限制100-1000,那么我们测试的时候,需要测试小于100的情况下。很显然前端只能输入大于100的。这是我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否OK。也就是说此时接口测试其实是不需要管前端的,主要测后端的功能。
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法:
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu

看个实例,模拟某网站的登录, 在IE中打开网站的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录:
- 用浏览器打开地址 http://computer-database.gatling.io/computers 
- 打开Fiddler,在命令行中输入bpu http://computer-database.gatling.io/computers 
- 在查询框中输入ACE,点击查询按钮 
- Fiddler能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改查询关键字,然后点击Run to Completion 如下图所示。 
- 结果是按照修改后的查询条件进行了查询。 

修改Response
第一种:打开Fiddler,点击Rules-> Automatic Breakpoint -> After Response (这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint-> Disabled
第二种: 在命令行中输入命令: bpuafter www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpuafter
具体用法和上节差不多,就不多说了。

拦截来自某网站的全部请求
- 在命令行输入:bpu www.cnblogs.com 
- 打开博客园任意网页,发现都被拦截到了 
- 打开博客园其他网站,其它网站可以正常请求 
- 说明只拦截了来自部落论坛(www.cnblogs.com)的请求 
- 清除输入bpu回车即可 
10. 模拟服务端响应
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。也就是用fiddler模拟服务端的响应。
看个实例:
1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。
2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif, 把这个会话拖到AutoResponer Tab下
3. 选择Enable automatic reaponses 和Unmatched requests passthrough
4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片. 最后点击Save 保存下。
5. 再用IE博客园首页, 你会看到首页的图片用的是本地的。


11. 过滤会话
每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话。Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。
12. 会话比较
选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了(当然需要你安装WinDiff)

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

13. 保存会话
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。保存会话的步骤如下:点击File->Save->Selected Sessions
14. 网速限制
Fiddle提供了一个功能,让我们模拟低速网路环境…启用方法如下:Rules → Performances → Simulate Modem Speeds (如下图)

打开之后即可,默认的请求的时间值是【300】,响应的值是【150】,我们也可以自行修改。具体方法是点开Rules → Customize Rules 。此时会弹出CustomRules.js的代码,Ctrl+F寻找m_SimulateModem关键字,你会找到下面这段:

这段代码是模拟网路速度的原理,每上传/下载1KB 要delay(推迟) 多久。
如果你习惯用kbps 去算的话,那么我们的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay200毫秒来接收数据。也就是说"request-trickle-delay”输入时间值越大,代表访问某网页的时间越久。
请注意,当你存档之后,原本已经勾选的Simulate Modem Speeds 会被取消勾选,要记得再到Rules → Performances → Simulate Modem Speeds 勾选,这样限制网速就成功了。
16. 常用插件
插件官方下载地址:www.telerik.com/fiddler/add-ons。(请复制到浏览器打开)。Fiddle也支持第三方插件。
以下推荐几款插件:
1.代码格式化插件:JavaScript Formatter。安装完重启,右击会话,选择“Make JavaScript Pretty”,即可。
2.对比会话插件:Traffic Differ。安装完重启,可在“监控面板”右侧找到“Differ”选项,点击,拖动多个会话即可对比信息。
Fiddler用法整理的更多相关文章
- Spring JdbcTemplate用法整理
		Spring JdbcTemplate用法整理: xml: <?xml version="1.0" encoding="UTF-8"?> <b ... 
- linq用法整理
		linq用法整理 普通查询 var highScores = from student in students where student.ExamScores[exam] > score se ... 
- linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
		指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ... 
- #ifndef#define#endif的用法(整理)
		[转] #ifndef#define#endif的用法(整理) 原作者:icwk 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ... 
- Google Guava 库用法整理<转>
		参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports- ... 
- MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)
		这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jerem ... 
- Android spannableStringBuilder用法整理
		Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ... 
- OBJECTPROPERTY用法整理
		OBJECTPROPERTY用法整理 分类: 系统表与表结构 数据库管理维护2010-06-03 16:37 2783人阅读 评论(1) 收藏 举报 数据库sql serverinsertobject ... 
- #Javascript:this用法整理
		常用Javascript的人都知道,[this這個關鍵字在一個函式內究竟指向誰]的這個問題很令人頭大,本人在這裡整理了一下Javascript中this的指向的五種不同情況,其中前三種屬於基本的情況, ... 
随机推荐
- CH0805 防线  (二分值域,前缀和,特殊性质)
			$ CH~0805~ $ 防线 (二分值域,前缀和,特殊性质) $ solution: $ 注意博主所给题面的输出和原题有些不同 这道题当时想了很久很久,就是想不到怎么写.果然还是太 $ vegeta ... 
- 如何提高SMTP邮件的安全性?从而不被黑客窃听
			简单邮件传输协议(SMTP)用于在邮件服务器之间进行邮件传输,并且传统上是不安全的,因此容易被黑客窃听.命名实体的基于DNS的认证(国家统计局)用于SMTP提供了邮件传输更安全的方法,并逐渐变得越来越 ... 
- PageOffice修改注册码升级版本
			java: 删除pageoffice.jar所在目录(一般是WEB-INF/lib)下的license.lic文件(若服务器运行时找不到该文件,可在浏览器地址栏里面通过localhost方式访问pos ... 
- STM32开发板的TIM3开启和关闭
			关闭定时器中断要考虑好多情况 1)关闭定时器时,定时器是否在处在工作状态 2)关闭定时器时,定时器是否正好进入中断,造成关闭程序出现断层,进而无法实现完整关闭程序,此时可以使用高一级别的外部中断强制进 ... 
- JSP文件的上传和下载
			文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件.而且支持断点续传. 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场 ... 
- luogu【P1024 一元三次方程求解】题解
			题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ... 
- LR之流程
			一.新建事务 如何估算一个业务流程呢?一个业务流程的持续时间:登录,预定机票等等的花费时间,通常是几个步骤构成的,所以在LR中需要标记事物,作为评测业务的时间. 1.打开Basic_Tutorial脚 ... 
- sip/sdp/rtp/rtcp/rtsp间的关系
			用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步. 转自该博客:http://blog.csdn.net/xdwyyan/article/detai ... 
- selinux 关闭
			查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ... 
- 查看磁盘和文件的使用情况df和du
			df, du: disk filesystem, disk usage. df : 查看一级目录的使用情况, df -h du: 则是可以查看目录或者某个文件的占用磁盘空间的情况, du -h: 使用 ... 
