Fiddler调试权威指南
2014-2-1
人民邮电出版社
[美]Eric Lawrence
祝洪凯,李妹芳
无
Fiddler是一种流行的Web调试代理。它功能强大,界面友好,简单易用,无论对开发人员或者测试人员来说,都是非常有用的工具。
《Fiddler调试权威指南》是Fiddler的开发者Eric Lawrence编写的一本权威的参考指南。全书分为10章和4个附录,从认识Fiddler开始,介绍了基本技巧和概念、配置选项、Inspectors、扩展、数据流导入导出、FiddlerScript和FiddlerCore等主题;附录部分还给出了故障排除和命令行等有用的参考信息。
《Fiddler调试权威指南》适合Web开发人员和Web测试人员阅读参考,也适合想要学习和掌握Fiddler的读者阅读。通过《Fiddler调试权威指南》,你将学会如何利用Fiddler调试Web相关的应用,掌握如何调试HTTPS数据流,学会如何在流行的设备上使用Fiddler,甚至掌握更多高级的扩展功能。
第1章 引言 1
1.1 起源 1
关于本书 4
1.2 快速入门 5
1.2.1 基本概念 5
1.2.2 使用场景 7
第2章 探索Fiddler 9
2.1 入门 9
2.1.1 系统需求 9
2.1.2 安装Fiddler 10
2.1.3 更新Fiddler 10
2.1.4 卸载Fiddler 11
2.2 FIDDLER用户界面 11
2.2.1 Web Sessions列表 12
2.2.2 Web Session上下文菜单 15
2.3 FIDDLER的主菜单 19
2.3.1 File菜单 19
2.3.2 Edit菜单 20
2.3.3 Rules菜单 21
2.3.4 Tools菜单 22
2.3.5 View菜单 23
2.3.6 Help菜单 24
2.4 FIDDLER的工具栏 25
Fiddler的状态栏 27
2.5 QUICKEXEC 27
2.6 应用热键 31
2.7 统计选项卡 32
2.8 FILTERS选项卡 34
2.9 TIMELINE时间轴选项卡 38
2.9.1 模式:Timeline(时间轴) 39
2.9.2 模式:Client Pipe Map(客户端管道映射) 40
2.9.3 模式:Server Pipe Map(服务端管道映射) 40
2.9.4 使用时间轴进行性能分析 41
2.10 自动响应(AUTORESPONDER)选项卡 41
2.10.1 指定匹配条件 42
2.10.2 指定Action Text 44
2.10.3 对Action Text应用正则表达式 45
2.10.4 拖放支持 46
2.10.5 FARX文件 47
2.11 TEXTWIZARD 47
字符编码 49
2.12 COMPOSER选项卡 50
2.13 Log选项卡 54
2.14 Find Session窗口 54
2.15 Hosts Remapping工具 56
第3章 技巧和概念 57
3.1 使用Fiddler重定向数据流 57
重定向请求的功能 59
3.2 Session比较 60
3.3 断点调试 62
第4章 配置Fiddler和客户端 65
4.1 Fiddler选项 65
4.1.1 常用选项 65
4.1.2 HTTPS选项 66
4.1.3 扩展选项 67
4.1.4 连接选项 68
4.1.5 外观选项 69
4.2 HEADER编码设置 70
4.3 PREFERENCES(偏好) 71
4.4 配置客户端 72
4.4.1 捕获浏览器的数据流 72
4.4.2 从其他应用中捕获数据流 74
4.4.3 通过服务捕获数据流 76
4.4.4 捕捉“回路”数据流 76
4.4.5 在Max OSX上运行Fiddler 79
4.4.6 从其他计算机捕捉数据流 81
4.4.7 从设备捕捉数据流 82
4.4.8 使用Fiddler作为反向代理 84
4.4.9 挂接到上游代理服务器 85
4.4.10 挂接到SOCKS/TOR 86
4.4.11 VPN、Modem和网络共享 87
4.4.12 DirectAccess 87
4.5 内存使用和Fiddler的“位数” 87
4.6 缓存和流式数据流 89
4.6.1 请求缓存 89
4.6.2 响应缓存 90
4.6.3 COMET 90
4.7 HTML5 WEBSOCKETS 91
4.8 Fiddler和HTTPS 92
信任Fiddler根证书 94
4.9 为HTTPS解密配置客户端 97
4.9.1 浏览器 97
4.9.2 HTTPS和设备 98
4.9.3 HTTPS服务器有Bug 99
4.9.4 证书生效 100
4.9.5 Certificate Pinning 100
4.10 Fiddler和FTP 101
4.11 Fiddler和Web认证 102
4.11.1 HTTP身份认证 102
4.11.2 Fiddler中的自动身份认证 103
4.11.3 身份认证问题 104
4.11.4 HTTPS客户端证书 105
第5章 Inspectors 107
5.1 概览 107
5.2 授权和认证(AUTH) 108
5.3 缓存(CACHING) 110
5.4 COOKIES 110
5.5 HEADERS 112
5.5.1 上下文菜单 113
5.5.2 快捷键 113
5.5.3 编辑 114
5.6 HEXVIEW 114
5.7 IMAGEVIEW 116
5.8 JSON 117
5.9 RAW 118
5.10 SYNTAXVIEW 119
5.11 TEXTVIEW 120
5.12 TRANSFORMER 121
5.12.1 响应的编码的一些背景知识 121
5.12.2 使用Transformer添加或删除编码方式 122
5.12.3 删除编码的其他方式 123
5.13 WEBFORMS 124
5.14 WEBVIEW 125
5.15 XML 126
第6章 扩展 127
6.1 概览 127
6.1.1 流行的第三方扩展 127
6.1.2 我创建的扩展 128
6.2 JAVASCRIPT FORMATTER 128
6.3 GALLERY 129
全屏视图 130
6.4 CONTENT BLOCKER 131
6.5 TRAFFIC DIFFER 132
6.6 FIDDLERSCRIPT编辑器 133
6.6.1 FiddlerScript选项卡 133
6.6.2 ClassView侧边栏 134
6.6.3 Fiddler2 ScriptEditor 135
6.7 SAZCLIPBOARD 136
6.8 ANYWHERE 136
第7章 保存、导入和导出数据流 138
7.1 Session的ARCHIVE ZIP(SAZ)文件 138
保护SAZ文件 139
7.2 FIDDLERCAP 140
7.2.1 Capture窗口 141
7.2.2 Capture Options窗口 141
7.2.3 Tools窗口 143
7.3 Fiddler的Viewer模式 143
7.4 导出和导出Session 144
7.4.1 导入格式 145
7.4.2 导出格式 145
第8章 FiddlerScript 150
8.1 使用FiddlerScript扩展Fiddler 150
8.1.1 关于FiddlerScript 150
8.1.2 编辑FiddlerScript 152
8.2 FIDDLERSCRIPT函数 153
8.2.1 Session处理函数 153
8.2.2 常用函数 154
8.3 FIDDLERSCRIPT及自动化工具 155
8.4 扩展Fiddler的UI菜单 157
8.4.1 扩展Tools菜单 158
8.4.2 扩展Web Session的上下文菜单 159
8.4.3 扩展Rules菜单 159
8.4.4 创建一个顶级菜单 162
8.5 扩展Fiddler UI——在Web Session列表中添加列 163
8.5.1 使用属性绑定列 163
8.5.2 通过AddBoundColumn绑定列 165
8.6 FIDDLEROBJECT函数 167
8.7 引用程序集ASSEMBLIES 169
8.8 示例脚本 170
8.8.1 请求脚本 171
8.8.2 响应脚本 173
8.8.3 更多例子 174
第9章 通过.NET代码扩展Fiddler 175
9.1 通过.NET扩展Fiddler 175
9.1.1 项目需求和设置 175
9.1.2 调试扩展 176
9.1.3 扩展的最佳实践 176
9.2 和Fiddler对象交互 180
9.2.1 Web Session列表 180
9.2.2 Session对象 183
9.2.3 向TextWizard发送字符串 189
9.2.4 记录日志 190
9.2.5 和FiddlerScript引擎交互 191
9.3 Preferences编程 191
9.3.1 Preference命名 192
9.3.2 IFiddlerPreferences接口 192
9.3.3 保存和删除Preferences 193
9.3.4 检索Preferences 193
9.3.5 观察Preference变化 193
9.4 构建扩展安装程序 195
9.5 构建Inspectors 198
监测Session对象 202
9.6 处理HTTP压缩和分块传输 203
9.6.1 对响应体副本解码 204
9.6.2 使用GetRe*BodyAsString方法 205
9.6.3 使用utilDecode*方法 205
9.6.4 Inspector程序集 206
9.7 构建扩展 206
9.7.1 理解线程 208
9.7.2 集成到QuickExec 208
9.7.3 示例扩展 209
9.7.4 扩展的程序集 214
9.8 构建导入导出转换器(TRANSCODERS) 215
9.8.1 处理选项 217
9.8.2 不止是文件 219
9.8.3 示例Transcoder 219
第10章 FiddlerCore 224
10.1 概述 224
10.1.1 合法性 225
10.1.2 FiddlerCore入门 225
10.1.3 编译示例应用 225
10.2 FIDDLERAPPLICATION类 228
10.2.1 FiddlerApplication事件 228
10.2.2 FiddlerApplication提供的方法 232
10.2.3 FiddlerApplication的属性和变量 233
10.2.4 Fiddler API的其余部分 234
10.3 FIDDLERCORE的常见任务 234
附录A 故障排除 238
A.1 缺失数据流 238
A.2 安全软件的干扰 239
A.3 代理设置被破坏 240
A.4 重新设置Fiddler 241
A.5 解决证书问题 241
A.6 清除Fiddler所有运行痕迹 242
A.7 Fiddler崩溃信息提示关于“Configuration System” 243
A.8 Fiddler会随机停止捕捉数据流 243
A.9 Fiddler在流式发送RPC-over-HTTPS的数据流时“抛锚” 244
附录B 命令行语义 246
B.1 选项标志 246
B.2 实例 247
附录C Session标志位 248
C.1 Session显示标志位 248
C.2 断点和编辑标志位 250
C.3 网络标志位 251
C.4 认证标志位 252
C.5 客户端信息标志位 253
C.6 性能模拟标志位 254
C.7 HTTPS标志位 254
C.8 Request Composer标志位 257
C.9 其他标志位 257
附录D Preferences 261
D.1 网络Preferences 261
D.2 HTTPS Preferences 266
D.3 Fiddler UI Preferences 269
D.4 FiddlerScript Preferences 274
D.5 TextWizard Preferences 275
D.6 Request Composer Preferences 275
D.7 路径配置 276
D.8 其他标志位 277
D.9 扩展Preferences 279
D.10 Raw Inspector 279
D.11 JavaScript Formatter 280
D.12 证书生成器(Certificate Maker) 280
无