Fiddler 不但能截获各种浏览器发出的 HTTP 请求, 也可以截获各种智能手机发出的 HTTP/HTTPS 请求。
Fiddler 只支持常用的 http 和 https 协议,其他协议的就只能用 wireshak 了
1. Fiddler 的使用配置
> 配置 Fiddler,允许“远程连接”
打开 Fiddler, Tools-> Fiddler Options 。 (配置完后记得要重启 Fiddler ).
选中"Decrpt HTTPS traffic", Fiddler 就可以截获 HTTPS 请求
选中"Allow remote computers to connect". 是允许别的机器把 HTTP/HTTPS 请求发送到 Fiddler 上来
获取 Fiddler 所在机器的 IP 地址。可以用 ipconfig 命令获取,也可以通过 fiddler 获取,下面有获取方式。
> 移动端上安装 Fiddler 证书
这一步是为了让 Fiddler 能捕获 HTTPS 请求。 如果你只需要截获 HTTP 请求, 可以忽略这一步
1. 首先要知道 Fiddler 所在的机器的 IP 地址:假如我安装了 Fiddler 的机器的 IP 地址是:192.168.1.104
2. 打开浏览器,访问 http://192.168.1.104:8888, 点"FiddlerRoot certificate" 然后安装证书,安装完成后即可使用。
2. 过滤会话
只抓取自己想要的请求
在 Filers 面板中勾选“Use Filters”,并在 Hosts 区域,设置以下三个选项:
1).第一项有三个选项,分别是 “No zone filter” “Show Only Intranet Hosts” “Show Only Internet Hosts”,不做更改;
2).第二项有四个选项,分别是:
“No Host Filter” 不设置 hosts 过滤 ;
“Hide The Following Hosts” 隐藏过滤到的域名 ;
“Show Only The Following Hosts” 只显示过滤到的域名;
“Flag The Following Hosts” 标记过滤到的域名;
选中“Show Only The Following Hosts”,在文本框内输入需要过滤的域名,多个域名使用 “;” 分号分割。 fiddler 默认会检查 http 头中设置的 host,强制显示 http 地址中的域名。
3. Response乱码时的处理方法
问题:有时候我们看到 Response 中的 HTML 是乱码的, 这是因为 HTML 被压缩了, 我们可以通过两种方法去解压缩。
步骤:
方法一:点击红框内容“Response body is encouded.Click to decode.”
方法二:选中工具栏中的"Decode"。 这样会自动解压缩。
4. 反向代理-AutoResponder
意思就是将外界的 request 请求端口修改掉! 改写返回数据,最实用的功能!!
步骤:
1)、用浏览器随意输入一个网址,如 http://www.baidu.com/
2)、选中序号16记录,右击-勾选“Unlock fo Editing”(F2 更方便),选择 Fiddler 右侧 reponse 块下的TextView,这里修改title,如图:
3)、选择 Fiddler 右侧 reponse 块下的 TextView,这里修改 title,如图:
4)、去掉“Unlock for Editing”,再选择右侧上方的 AutoResponder,勾选下方的checkbox选框,并将序号 16 拖到下方,同时,里面会多条记录,如下图:
5)、回到浏览器,刷新页面,如图,标题变为上面改的内容
5. 模拟低速网络环境
启用方法如:Rules → Performances → Simulate Modem Speeds
6. 自定义Modem Speeds速度
Rules → Customize Rules
找m_SimulateModem这个字,你会找到下面这段:这就是
他模拟网路速度的原理,每上传/下载1KB 要delay 多久。
如果你习惯用 kbps 去算的话,那么我们的算法就是 1000/下载速度 = 需要 delay 的时间(毫秒),比如50kb/s 需要 delay 200 毫秒来接收数据。请注意,当你存档之后,原本已经勾选的 Simulate Modem Speeds 会被取消勾选,要记得再到 Rules → Performances → Simulate Modem Speeds 勾选。
7. 模拟404返回等 http 响应操作
通过 Fiddler 自带的 AutoResponder 工具模拟 http 响应。Fiddler 的 AutoResponder tab 允许你从本地返回文件,而不用将 http request 发送到服务器上。
步骤:
1. 打开 Fiddler 找到 AutoResponder
2. 选择 Enable automatic reaponses 和 Unmatched requests passthrough
3. 选中左侧捕捉到的http请求,然后点击Add Rule
4. 在下面的 Rule Editor 下拉选择要模拟的响应类型,200、404、502 等(也可以自己创建 Response,选中 Create New Response...,如果是要替换掉某些页面文件,选中Find a file). 最后点击Save 保存下。
5.建立规则后,向原url的请求,就变成了你所指定的响应,再去请求一下原url就能看到效果。
其中链接处用到了正则表达式:
前缀为“EXACT:”表示完全匹配(大小写敏感)
无前缀表示基本搜索,表示搜索到字符串就匹配
前缀为“REGEX:”表示使用正则表达式匹配
前缀为“REGEX:(?insx)”表示匹配方式其中:
i 表示不区分大小写;
n 表示指定的唯一有效的捕获是显式命名或编号的形式;
s 表示单行模式;
x 表示空格说明的;
8. 快速查看本机IP
9. 拦截本机浏览器请求
设置浏览器代理,127.0.0.1:8888