More Related Content
Similar to Fiddler使用技巧 (20)
Fiddler使用技巧
- 2. 主要内容
一、Fiddler 简介
二、Fiddler 使用技巧
三、使用脚本化的规则来扩展 Fiddler
四、几个常见问题
此分享基亍 Fiddler Web Debugger V2.3.3.0
2
- 3. 一、Fiddler 简介
什么人需要它?
· 前端开发工程师
· 线上故障支持人员
· 页面制作及接口开发
· Web 安全人员
3
- 5. 一、Fiddler 简介
· HTTP/HTTPS Web Debugger
· A proxy server
· Extremely extensible
· Written in C#
· It’s free
5
- 6. 一、Fiddler 简介
· HTTP/HTTPS Web Debugger
· A proxy server
· Extremely extensible
· Written in C#
· It’s free
6
- 7. 一、Fiddler 简介
工作原理
防火墙
CryptoAPI WinHTTP
Office
Internet CorpNET
WinINET Fiddler weibo.com
Explorer Proxy
Chrome
Safari
Firefox
7
- 8. 一、Fiddler 简介
B/S 模型
向右箭头代表上行数据,向左箭头代表下行数据
高速路代表互联网连接,小商庖代表服务器数据
8
- 10. 一、Fiddler 简介
· HTTP/HTTPS Web Debugger
· A proxy server
· Extremely extensible
· Written in C#
· It’s free
10
- 11. 一、Fiddler 简介
· HTTP/HTTPS Web Debugger
· A proxy server
· Extremely extensible
· Written in C#
· It’s free
11
- 12. 一、Fiddler 简介
· HTTP/HTTPS Web Debugger
· A proxy server
· Extremely extensible
· Written in C#
· It’s free
12
- 13. 一、Fiddler 简介
主要能力
· 分析页面性能
· 分析 HTTP 请求/响应数据
· 设置断点,调试线上错误
· 伪造数据请求,调试数据接口
13
- 15. 一、Fiddler 简介
安装
· MS .Net Framework v2.0+
· http://www.fiddler2.com/
15
- 18. 一、Fiddler 简介
命令行
ALT+Q > type HELP…
选择类:?text、>size、<size、=status、@host、
blod text、select、allbut、keeponly
断点类:bpafter、bps、bpv、bpm、bpu
控制类:hide、start、stop、show、quit
其他:cls/clear、dump、g/go、help、urlreplace
18
- 21. 二、Fiddler 使用技巧 —— ① 数据捕获
为什么有时捕获丌到?
· 检查软件 HTTP 代理设置
· 检查 Fiddler 捕获开关
· 检查过滤器设置
· ( localhost 是特殊情况,后面会提到 )
21
- 23. 二、Fiddler 使用技巧 —— ② 数据分析
数据分析 —— 请求分析面板
· Statistics 面板
· Inspectors 面板
· Timeline 面板
23
- 25. 二、Fiddler 使用技巧 —— ② 数据分析
数据分析 —— 单个请求分析插件
· Syntax-Highlighting (语法高亮插件)
· JavaScript Formatter (JS格式化)
· HTML Inspector (.Net 3.5 HTML分析)
· JSON Inspector (树状查看JSON数据)
· XML Inspector (查看POST的XML数据)
25
- 26. 二、Fiddler 使用技巧 —— ② 数据分析
数据分析 —— 多个请求分析插件
· neXpert Performance Report Generator
(性能分析插件)
· Traffic Differ (多个请求分析)
· Gallery (多个选中请求中的图片预览)
26
- 27. 二、Fiddler 使用技巧 —— ③ 设置断点修改数据
断点(BreakPoint)
在请求发出到服务器前(Before Requests)戒服务器
响应请求后(After Responses)中断请求,并做相应
的处理
Rules -> Automatic Breakpoints -> Before Requests
Rules -> Automatic Breakpoints -> After Responses
命令行:bpafter、bps、bpv、bpm、bpu
27
- 30. 二、Fiddler 使用技巧 —— ③ 设置断点修改数据
修改数据 —— 插件
· Delayed Responses (将请求延迟响应)
· Stave/UrlReplace (请求转向)
· Willow (请求转向)
· Local Override (请求转向)
30
- 31. 二、Fiddler 使用技巧 —— ④ 辅助功能
辅助功能——HOST修改
优点:无需重启浏览器
开启:Tools -> HOSTS…
另一种办法,修改注册表
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersion
Internet Settings]
"DnsCacheTimeout"=dword:5
"ServerInfoTimeOut"=dword:5
31
- 32. 二、Fiddler 使用技巧 —— ④ 辅助功能
辅助功能——模拟user-agent
· 开启:Rules -> User-Agents
· 可以编辑 Fiddler Rules 来增加/变更
(Rules -> Customize Rules)
32
- 33. 二、Fiddler 使用技巧 —— ④ 辅助功能
辅助功能——模拟慢速网络
· 采用延时模拟,无法模拟浏览器并发连接数限制
· 开启: Rules -> Performance ->
Simulate Modem speed
· 缺点 :功能比较单一,推荐使用 NetLimiter、
Speed Simulator、Network Delay Simulator
33
- 34. 二、Fiddler 使用技巧 —— ④ 辅助功能
辅助功能——字符编码解码
· 开启:Tools -> Text Encode/Decode…
· 支持的编码:
Base64编码解码 URL Encode/Decode
十六进制编码 Unicode编码解码
HTML实体化编码解码 UTF-7编码解码
Deflated 编码解码
34
- 35. 三、使用脚本化的规则来扩展 Fiddler
Fiddler 的扩展机制
· Fiddler 支持 Jscript.NET 引擎,可以很方
便的修改 CustomRules.js 来扩展。
· 修改后立即生效
· 开启:Rules -> Customize Rules…
35
- 36. 三、使用脚本化的规则来扩展 Fiddler
Fiddler 的扩展机制
Handles 类两个最重要的事件:
OnBeforeRequest(oSession: Session)
OnBeforeResponse(oSession: Session)
36
- 37. 三、使用脚本化的规则来扩展 Fiddler
OnBeforeRequest范例
// 将扩展名为 ASPX 的请求变成红色
if (oSession.uriContains(".aspx")) {
oSession["ui-color"] = "red";
}
// 将 POST 请求变成斜体
if (oSession.HostnameIs("www.fiddler2.com") &&
oSession.HTTPMethodIs("POST")) {
oSession["ui-italic"] = "yup";
}
37
- 38. 三、使用脚本化的规则来扩展 Fiddler
OnBeforeRequest范例
// 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";
}
38
- 39. 四、几个常见问题
关亍 localhost
· IE9 RC 已经支持,无需额外处理
· 使用机器名代替 http://机器名/
· 使用 http://localhost./
· 使用 http://ipv4.fiddler/
· 使用 HOST 访问
· 使用本机 IP 访问 (命令行 ipconfig 查看)
39
- 40. 四、几个常见问题
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
40
- 45. 参考资料
· 官方帮助
· 官方视频
· 谷歌讨论组
· StackOverflow Q&A
45
- 46. 题外话
值得尊敬的 Eric
仅仅去年,他就在 Fiddler 上投入了 $2500 (组件授
权用了 $1549,主机、带宽和 PKI 用了 $512,编译
器和其他工具用了 $433)
Fiddler 越火, 自掏腰包就越多。
http://www.fiddler2.com/fiddler/donate.asp
有钱的捧个钱场,没钱的捧个人场
46