第1章 HTTP协议和Fiddler抓包 1
1.1 HTTP协议介绍 1
1.1.1 什么是HTTP协议 1
1.1.2 如何学习HTTP协议 1
1.1.3 HTTP协议的工作原理 2
1.2 Fiddler的介绍 2
1.2.1 Fiddler的下载和安装 3
1.2.2 Fiddler的基本界面 3
1.2.3 Inspectors选项卡 4
1.2.4 Web Sessions列表 5
1.2.5 Fiddler捕获HTTP协议的数据包 5
1.2.6 Fiddler设置开始捕获和停止捕获 6
1.3 HTTP协议报文的结构 7
1.3.1 HTTP请求报文的结构 7
1.3.2 HTTP响应报文的结构 8
1.3.3 Fiddler捕获博客主页,查看HTTP请求和HTTP响应报文 9
1.4 Fiddler抓包的原理 10
1.4.1 什么是代理服务器 10
1.4.2 Fiddler的工作原理 11
1.4.3 查看Internet选项代理设置 11
1.4.4 Fiddler如何捕获Firefox 12
1.4.5 Fiddler能捕获哪些设备的HTTP数据包 13
1.4.6 解压HTTP响应 14
第2章 HTTPS协议和Fiddler抓包 15
2.1 HTTP协议是不安全的 15
2.2 Web通信如何做到安全 15
2.3 什么是HTTPS 17
2.4 Fiddler如何捕获HTTPS会话 17
2.4.1 添加例外绕过HTTPS证件错误 18
2.4.2 Firefox中安装证书 20
2.4.3 Fiddler可以捕获HTTPS的握手验证请求 21
2.4.4 查看Windows本地安装的证书 22
第3章 HTTP协议请求方法和状态码 23
3.1 URL详解 23
3.1.1 URL格式 23
3.1.2 URL中的锚点 24
3.2 HTTP请求方法 24
3.2.1 GET方法 25
3.2.2 带参数的GET方法 26
3.2.3 POST方法 26
3.2.4 GET和POST方法的区别 28
3.3 HTTP状态码 28
3.3.1 什么是HTTP状态码 28
3.3.2 状态码分类 28
3.3.3 常见的状态码 29
3.3.4 200(OK) 29
3.3.5 204(No Content,没有内容) 30
3.3.6 206(Partial Content,部分内容) 31
3.3.7 301(MovedPermanently) 32
3.3.8 302(Found) 33
3.3.9 301和302的区别 33
3.3.10 304(Not Modified) 34
3.3.11 400(Bad Request) 34
3.3.12 401(Unauthorized) 35
3.3.13 403(Forbidden) 36
3.3.14 404(Not Found) 36
3.3.15 500(Internal Server Error) 36
3.3.16 503(Server Unavailable) 38
第4章 HTTP协议Header介绍 39
4.1 HTTP Header介绍 39
4.2 Fiddler查看HTTP请求Header 39
4.2.1 Cache相关的Header 40
4.2.2 Cookies 41
4.2.3 Accept 41
4.2.4 Accept-Encoding 41
4.2.5 Accept-Language 41
4.2.6 User-Agent 42
4.2.7 实例:Fiddler修改User-Agent,伪装客户端 42
4.2.8 Referer 43
4.2.9 Connection 44
4.2.10 Host 44
4.3 Fiddler查看HTTP响应Header 44
4.4 Fiddler查看和复制Header 45
第5章 Web网页抓包和Fiddler修改包 46
5.1 网页是如何打开的 46
5.1.1 一个网页的组成 46
5.1.2 打开一个网页,浏览器需要发送很多个请求 47
5.1.3 用Fiddler查看一个Web页面打开的过程 47
5.1.4 用Fiddler选择请求 48
5.2 Web页面简单的性能测试 49
5.3 使用Fiddler来查看响应 50
5.4 Fiddler下断点,修改HTTP报文 51
5.4.1 Fiddler中设置断点修改HTTP请求 51
5.4.2 实例:Fiddler修改HTTP请求 52
5.4.3 Fiddler中设置断点修改HTTP响应 53
5.4.4 Fiddler修改网页的标题 54
5.4.5 伪造Referer 55
第6章 HTTP协议中的缓存 56
6.1 缓存的概念 56
6.2 缓存的优点 56
6.3 Fiddler可以方便地查看缓存的Header 57
6.4 如何判断缓存新鲜度 57
6.5 通过最后修改时间来判断缓存新鲜度 58
6.6 与缓存有关的Header 59
6.7 ETag 60
6.8 浏览器不使用缓存 61
6.9 直接使用缓存,不去服务器验证 62
6.10 如何设置IE不使用缓存 63
6.11 公有缓存和私有缓存的区别 64
第7章 HTTP协议压缩和URLEncode 65
7.1 HTTP压缩的过程 65
7.1.1 实例:Fiddler观察HTTP压缩 66
7.1.2 内容编码类型 67
7.1.3 压缩的好处 68
7.1.4 gzip的不足之处 68
7.1.5 gzip是如何压缩的 68
7.1.6 HTTP请求也是可以编码的 68
7.1.7 HTTP内容编码和HTTP压缩的区别 69
7.2 URL Encode介绍 69
7.2.1 查询字符串中包含汉字 69
7.2.2 POST中的数据包含汉字 70
7.3 Fiddler中的TextWizard 71
第8章 Fiddler使用技巧 72
8.1 Fiddler和其他抓包软件的比较 72
8.2 Fiddler抓不到包应该怎么解决 73
8.3 如何找到想抓的包 73
8.4 Fiddler异常退出后无法上网 73
8.5 Fiddler排序 74
8.6 Fiddler中查询会话 74
8.7 Fiddler中保存抓到的包 75
8.8 Fiddler中编辑会话 75
8.9 过滤会话 75
8.10 常用快捷键 76
8.11 QuickExec命令行的使用 77
8.12 Fiddler比较会话的不同 78
8.13 Fiddler插件 79
8.13.1 JavaScript Formatter 79
8.13.2 Gallery插件 79
第9章 Fiddler前端快速调试 81
9.1 如何在服务器上调试JavaScript文件 81
9.2 Fiddler AutoResponder的工作原理 82
9.3 Fiddler在线调试JavaScript文件 82
9.4 浪漫的程序员 85
9.5 替换网页中的图片 86
第10章 Fiddler的Script用法 89
10.1 Fiddler Script介绍 89
10.2 Fiddler Script Editor 90
10.3 CustomRules.js中的主要方法 91
10.4 Fiddler定制菜单 92
10.5 修改Session在Fiddler的显示样式 92
10.6 修改HTTP请求 93
10.6.1 修改HTTP请求中的Cookie 93
10.6.2 替换HTTP请求的Host地址 94
10.6.3 修改HTTP请求中的Header 94
10.6.4 修改HTTP请求中的Body 95
10.7 修改HTTP响应 95
10.8 读写txt文件 96
10.9 使用正则表达式 96
10.10 保存Session 97
10.11 读取Session,并且使用Fiddler来发送 97
第11章 深入理解Cookie机制 98
11.1 HTTP协议是无状态的 98
11.2 会话机制 98
11.3 Cookie机制 100
11.4 Cookie是什么 100
11.5 Cookie的作用 101
11.6 抓包观察上海科技馆网站的登录 102
11.7 Cookie的属性 103
11.8 Cookie的分类 104
11.9 Cookie保存在哪里 104
11.10 使用和禁用Cookie 105
11.11 网站自动登录的原理 106
11.12 Cookie和文件缓存的区别 106
11.13 Cookie泄露隐私 107
第12章 Fiddler实现Cookie劫持攻击 108
12.1 截获Cookie冒充别人身份 108
12.2 Cookie劫持的原理 108
12.3 Cookie劫持实例介绍 109
12.3.1 找到登录的Cookie 109
12.3.2 浏览器中植入Cookie 111
12.4 网站退出的作用 112
第13章 HTTP基本认证 113
13.1 什么是HTTP基本认证 113
13.1.1 路由器管理页面使用基本认证 114
13.1.2 HTTP基本认证的优点 117
13.1.3 HTTP基本认证的缺点 117
13.1.4 使用TextWizard工具 117
13.1.5 客户端的使用 117
13.2 摘要认证 118
第14章 Fiddler手机抓包 119
14.1 环境准备 119
14.2 Fiddler截获手机原理图 119
14.3 截获手机发出的HTTP包有什么作用 120
14.4 手机抓包 120
14.4.1 配置Fiddler允许“远程连接” 120
14.4.2 获取Fiddler所在机器的IP地址 121
14.4.3 手机上设置代理服务器 121
14.4.4 测试Fiddler捕获手机发出的HTTP 123
14.4.5 捕获手机上的HTTPS 123
14.4.6 Apple设备需要使用插件制作新证书 123
14.4.7 iOS设备安装证书方法 124
14.4.8 Android设备安装证书方法一 125
14.4.9 Android设备安装证书方法二 126
14.4.10 测试Fiddler捕获手机的HTTPS 127
14.5 设置过滤 127
14.6 如何卸载证书 128
14.7 手机抓包提醒 128
第15章 Fiddler发送HTTP请求 129
15.1 Fiddler Composer发送HTTP请求 129
15.1.1 Composer发送Get请求 129
15.1.2 Composer的编辑模式 130
15.1.3 Composer发送Post请求 130
15.1.4 Composer编辑之前捕获的HTTP请求 131
15.2 Fiddler重新发送HTTP请求 131
15.2.1 Replay菜单 131
15.2.2 简单的性能测试 132
15.2.3 先编辑再发送 133
15.3 安全测试之重放攻击 133
15.3.1 重放攻击是怎么发生的 133
15.3.2 重放攻击的危害 133
15.3.3 重放攻击的解决方案 133
15.3.4 APP验证码重放 134
15.4 查找和登录相关的Cookie 136
第16章 Fiddler实现弱网测试 139
16.1 什么是弱网 139
16.2 弱网环境带来的问题 140
16.3 弱网测试的目的 140
16.4 弱网的场景 140
16.5 Fiddler模拟网络延迟 140
16.6 精确控制网速 141
16.7 Fiddler模拟网络中断 142
16.8 实例:Fiddler返回500状态码 142
16.9 Fiddler模拟网络超时 143
第17章 自动化测试和接口测试 144
17.1 自动化测试分类 144
17.2 分层的自动化测试理念 144
17.3 Web自动化测试的两种思路 146
17.4 什么是接口测试 146
17.5 接口测试工具 147
17.6 Web原理 147
17.7 Web自动化测试原理 148
17.8 性能测试的原理 148
17.9 APP的后台测试 149
17.10 如何学习Web自动化测试和性能测试 149
第18章 JMeter工具使用介绍 151
18.1 JMeter介绍 151
18.2 JMeter的下载和运行 151
18.3 创建测试任务 152
18.4 添加HTTP请求 153
18.5 实例:密码用MD5加密 154
第19章 JMeter天气接口自动化测试 160
19.1 天气查询的例子 160
19.2 天气查询网站抓包 160
19.3 抓包分析 161
19.4 获取城市地区代码 162
19.5 处理JMeter中HTTP响应乱码 163
19.6 添加验证点 164
19.7 使用用户自定义变量 165
19.8 正则表达式提取城市地区代码 166
19.9 获取天气 167
第20章 JMeter中BeanShell的用法 169
20.1 什么是BeanShell 169
20.2 操作变量 169
20.3 JMeter有哪些BeanShell 170
20.4 BeanShell调用自己写的jar包进行MD5加密 171
第21章 自动登录禅道和自动开Bug 174
21.1 HTTP Cookie管理器 174
21.2 HTTP请求默认值 175
21.3 禅道介绍和部署 175
21.4 禅道操作和抓包分析 176
21.4.1 第1步,自动登录禅道 176
21.4.2 第2步,创建一个新的Bug 181
21.4.3 第3步,找到刚刚新建Bug的ID 184
21.4.4 第4步,修改Bug状态为“已解决” 185
21.4.5 第5步,关闭Bug 187
21.4.6 总结 187
第22章 JMeter给网站做压力测试 188
22.1 案例介绍 188
22.2 压力测试的目的 188
22.3 抓包分析Mozy网站的登录过程 189
22.4 抓包分析 190
22.5 实现Mozy登录 191
22.6 简单的压力测试 193