fiddler使用技巧

主要内容
一、Fiddler简介
二、Fiddler使用技巧
三、使用脚本化的规则来扩展 Fiddler
四、几个常见问题

一、Fiddler 简介

什么人需要它?
• 前端开发工程师
• 线上故障支持人员
• 页面制作及接口开发
• Web 安全人员

Fiddler 到底是什么?
· HTTP/HTTPS Web Debugger
· A proxy server
这里写图片描述
这里写图片描述
向右箭头代表上行数据,向左箭头代表下行数据
高速路代表互联网连接,小商庖代表服务器数据
代理IP:127.0.0.1:8888
· Extremely extensible
· Written in C#
· It’s free

主要能力
· 分析页面性能
· 分析HTTP 请求/响应数据
· 设置断点,调试线上错误
· 伪造数据请求,调试数据接口
这里写图片描述
安装
· MS .Net Framework v2.0+
· http://www.fiddler2.com/
这里写图片描述
这里写图片描述
从左至右,依次是:
会话编号、HTTP状态、协议、域名、地址、响应BODY大小、 缓存、响应类型、来自进程及端口号、备注、自定义数据
这里写图片描述

任务面板部分

从主要能力说起
① 数据捕获
为什么有时捕获不到?
· 检查软件HTTP 代理设置
· 检查Fiddler 捕获开关
· 检查过滤器设置
· ( localhost 是特殊情况,后面会提到)

数据过滤
·过滤级别
· Filter 面板
· Content Blocking 插件

② 数据分析
数据分析—— 请求分析面板
· Statistics 面板
· Inspectors 面板
· Timeline 面板
这里写图片描述

数据分析—— 单个请求分析插件
· Syntax-Highlighting (语法高亮插件)
· JavaScript Formatter (JS格式化)
· HTML Inspector (.Net 3.5 HTML分析)
· JSON Inspector (树状查看JSON数据)
· XML Inspector (查看POST的XML数据)
这里写图片描述

数据分析—— 多个请求分析插件
· neXpert Performance Report Generator(性能分析插件)
· Traffic Differ (多个请求分析)
· Gallery (多个选中请求中的图片预览)

③ 设置断点,修改数据
断点(BreakPoint)
在请求发出到服务器前(Before Requests)戒服务器
响应请求后(After Responses)中断请求,并做相应
的处理
Rules -> Automatic Breakpoints -> Before Requests
Rules -> Automatic Breakpoints -> After Responses
命令行:bpafter、bps、bpv、bpm、bpu
这里写图片描述

修改数据
· AutoResponder面板
· RequestBuilder面板

修改数据—— 插件
· Delayed Responses (将请求延迟响应)
· Stave/UrlReplace (请求转向)
· Willow (请求转向)
· Local Override (请求转向)

④ 辅助功能
辅助功能——HOST修改
这里写图片描述
优点:无需重启浏览器
开启:Tools -> HOSTS…

另一种办法,修改注册表
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion
\Internet Settings]
“DnsCacheTimeout”=dword:5
“ServerInfoTimeOut”=dword:5

辅助功能——模拟user-agent
· 开启:Rules -> User-Agents
· 可以编辑Fiddler Rules 来增加/变更
(Rules -> Customize Rules)

辅助功能——模拟慢速网络
· 采用延时模拟,无法模拟浏览器并发连接数限制
· 开启: Rules -> Performance ->
Simulate Modem speed
· 缺点:功能比较单一,推荐使用NetLimiter、
Speed Simulator、Network Delay Simulator

辅助功能——字符编码解码
· 开启:Tools -> Text Encode/Decode…
· 支持的编码:
(1)Base64编码解码
(2)十六进制编码
(3)HTML实体化编码解码
(4)Deflated 编码解码
(5)URL Encode/Decode
(6)Unicode编码解码
(7)UTF-7编码解码

三、使用脚本化的规则来扩展Fiddler
Fiddler 的扩展机制
· Fiddler 支持Jscript.NET 引擎,可以很方
便的修改CustomRules.js 来扩展。
· 修改后立即生效
· 开启:Rules -> Customize Rules…

Handles 类两个最重要的事件:
OnBeforeRequest(oSession: Session)
OnBeforeResponse(oSession: Session)

OnBeforeRequest范例

// 将扩展名为ASPX 的请求变成红色
if (oSession.uriContains(".aspx")) {
oSession["ui-color"] = "red";
}
// 将POST 请求变成斜体
if (oSession.HostnameIs("www.fiddler2.com") &&
oSession.HTTPMethodIs("POST")) {
oSession["ui-italic"] = "yup";
}
// URL 中含有"/sandbox/" 的请求发出前被中断
if (oSession.uriContains("/sandbox/")){
oSession.oFlags["x-breakrequest"] = "yup";
// x-breakrequest 标志标识创建一个断点,值yup无关紧要
}
// 如果Header 含有cookie,就将请求变成紫色
if (oSession.oRequest.headers.Exists("Cookie")){
oSession["ui-color"] = "purple";
oSession["ui-bold"] = "cookie";
}

四、几个常见问题
关于localhost
· IE9 RC 已经支持,无需额外处理
· 使用机器名代替http://机器名/
· 使用http://localhost./
· 使用http://ipv4.fiddler/
· 使用HOST 访问
· 使用本机IP 访问(命令行ipconfig 查看)

Mac/linux 使用Fiddler
1、Windows (机器名:Winbox1) 上开启Fiddler
2、Fiddler 选项
(Tools->Fiddler Options->Connections Tab)
Allow remote computers to connect打勾
3、Mac/Linux 上设置代理为
Address: Winbox1 Port: 8888

POST数据中文参数乱码问题
这里写图片描述
解决:打开注册表编辑器,找到HKCU\Software\Microsoft\Fiddler2\
在里面添加一个字符串值,名叫HeaderEncoding,
值设置为默认编码,建议设成GB18030

意外死机戒者Fiddler异常退出后无法上网
原因:Fiddler 异常退出,但是系统的代理仍然是127.0.0.1:8888
解决办法:重新打开Fiddler,正行关闭

相关话题
FiddlerCap
这里写图片描述

参考资料
· 官方帮助
· 官方视频
· 谷歌讨论组
· StackOverflow Q&A

猜你喜欢

转载自blog.csdn.net/zljain/article/details/81629679
今日推荐