HTTP抓包利用Fiddler抓包工具來捕獲HTTP數(shù)據(jù)包,然后對其進(jìn)行重發(fā)、編輯等操作。HTTP抓包的用途非常廣泛,主要用于Web開發(fā)調(diào)試、軟件自動化測、接口自動化測試、性能測試和網(wǎng)絡(luò)爬蟲等方面。也用來檢查網(wǎng)絡(luò)安全。抓包也經(jīng)常被用來進(jìn)行數(shù)據(jù)截取等。
本書主要圍繞抓包展開。全書共有22章,著重介紹了HTTP協(xié)議、如何使用Fiddler對HTTP包進(jìn)行抓取,如何對HTTP進(jìn)行分析,以及使用JMeter等工具來發(fā)送HTTP包以實現(xiàn)軟件的自動化測試。本書圖文并茂,實例豐富,還有配套的視頻教程,方便讀者參考并動手實踐。
本書適合前端開發(fā)工程師、測試工程師、線上故障支持人員、接口開發(fā)人員和Web開發(fā)人員閱讀,也適合對自動化測試感興趣的人員閱讀。
本書附贈55個講解視頻,總價值149元
體驗全新AR掃圖看視頻模式
精通HTTP協(xié)議,快速掌握Fiddler抓包和JMeter發(fā)包
本書包括以下內(nèi)容
HTTP、HTTPS協(xié)議介紹;
使用Fiddler捕獲和修改HTTP包;
Cookie機(jī)制和劫持攻擊測試;
手機(jī)抓包和弱網(wǎng)測試;
重放HTTP包;
JMeter模擬自動登錄;
JMeter壓力測試。
本書特色
本書是關(guān)于HTTP協(xié)議、Fiddler抓包工具、JMeter發(fā)包工具的實踐指南;
包含很多有趣的實例,方便讀者動手操作;
講解Fiddler工具的應(yīng)用場景;
有配套的理論和操作視頻;
圖文并茂,方便讀者理解。
肖佳, VMware高級測試工程師,博客園知名博主(網(wǎng)名小坦克),撰寫了很多軟件開發(fā)和測試方面的技術(shù)文章;有10多年的軟件開發(fā)測試經(jīng)驗,有豐富的手動測試和自動化測試經(jīng)驗;個人博客閱讀量已經(jīng)超過500萬,樂于分享,善于用淺顯的語言來講解技術(shù)。
第 1章 HTTP協(xié)議和Fiddler抓包 1
1.1 HTTP協(xié)議介紹 1
1.1.1 什么是HTTP協(xié)議 1
1.1.2 如何學(xué)習(xí)HTTP協(xié)議 1
1.1.3 HTTP協(xié)議的工作原理 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協(xié)議的
數(shù)據(jù)包 5
1.2.6 Fiddler設(shè)置開始捕獲和
停止捕獲 6
1.3 HTTP協(xié)議報文的結(jié)構(gòu) 7
1.3.1 HTTP請求報文的結(jié)構(gòu) 7
1.3.2 HTTP響應(yīng)報文的結(jié)構(gòu) 8
1.3.3 Fiddler捕獲博客主頁,
查看HTTP請求和HTTP
響應(yīng)報文 9
1.4 Fiddler抓包的原理 10
1.4.1 什么是代理服務(wù)器 10
1.4.2 Fiddler的工作原理 11
1.4.3 查看Internet選項代理
設(shè)置 11
1.4.4 Fiddler如何捕獲Firefox 12
1.4.5 Fiddler能捕獲哪些設(shè)備的
HTTP數(shù)據(jù)包 13
1.4.6 解壓HTTP響應(yīng) 14
第 2章 HTTPS協(xié)議和Fiddler抓包 15
2.1 HTTP協(xié)議是不安全的 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協(xié)議請求方法和狀態(tài)碼 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 帶參數(shù)的GET方法 26
3.2.3 POST方法 26
3.2.4 GET和POST方法的
區(qū)別 28
3.3 HTTP狀態(tài)碼 28
3.3.1 什么是HTTP狀態(tài)碼 28
3.3.2 狀態(tài)碼分類 28
3.3.3 常見的狀態(tài)碼 29
3.3.4 200(OK) 29
3.3.5 204(No Content,沒有
內(nèi)容) 30
3.3.6 206(Partial Content,部分
內(nèi)容) 31
3.3.7 301(Moved
Permanently) 32
3.3.8 302(Found) 33
3.3.9 301和302的區(qū)別 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協(xié)議Header介紹 39
4.1 HTTP Header介紹 39
4.2 Fiddler查看HTTP請求Header 39
4.2.1 Cache相關(guān)的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響應(yīng)Header 44
4.4 Fiddler查看和復(fù)制Header 45
第5章 Web網(wǎng)頁抓包和Fiddler
修改包 46
5.1 網(wǎng)頁是如何打開的 46
5.1.1 一個網(wǎng)頁的組成 46
5.1.2 打開一個網(wǎng)頁,瀏覽器需要
發(fā)送很多個請求 47
5.1.3 用Fiddler查看一個Web頁面
打開的過程 47
5.1.4 用Fiddler選擇請求 48
5.2 Web頁面簡單的性能測試 49
5.3 使用Fiddler來查看響應(yīng) 50
5.4 Fiddler下斷點,修改HTTP報文 51
5.4.1 Fiddler中設(shè)置斷點修改
HTTP請求 51
5.4.2 實例:Fiddler修改HTTP
請求 52
5.4.3 Fiddler中設(shè)置斷點修改
HTTP響應(yīng) 53
5.4.4 Fiddler修改網(wǎng)頁的標(biāo)題 54
5.4.5 偽造Referer 55
第6章 HTTP協(xié)議中的緩存 56
6.1 緩存的概念 56
6.2 緩存的優(yōu)點 56
6.3 Fiddler可以方便地查看緩存的
Header 57
6.4 如何判斷緩存新鮮度 57
6.5 通過最后修改時間來判斷緩存
新鮮度 58
6.6 與緩存有關(guān)的Header 59
6.7 ETag 60
6.8 瀏覽器不使用緩存 61
6.9 直接使用緩存,不去服務(wù)器
驗證 62
6.10 如何設(shè)置IE不使用緩存 63
6.11 公有緩存和私有緩存的區(qū)別 64
第7章 HTTP協(xié)議壓縮和URL Encode 65
7.1 HTTP壓縮的過程 65
7.1.1 實例:Fiddler觀察HTTP
壓縮 66
7.1.2 內(nèi)容編碼類型 67
7.1.3 壓縮的好處 68
7.1.4 Gzip的不足之處 68
7.1.5 Gzip是如何壓縮的 68
7.1.6 HTTP請求也是可以
編碼的 68
7.1.7 HTTP內(nèi)容編碼和HTTP
壓縮的區(qū)別 69
7.2 URL Encode介紹 69
7.2.1 查詢字符串中包含漢字 69
7.2.2 POST中的數(shù)據(jù)包含漢字 70
7.3 Fiddler中的TextWizard 71
第8章 Fiddler使用技巧 72
8.1 Fiddler和其他抓包軟件的比較 72
8.2 Fiddler抓不到包應(yīng)該怎么解決 73
8.3 如何找到想抓的包 73
8.4 Fiddler異常退出后無法上網(wǎng) 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前端快速調(diào)試 81
9.1 如何在服務(wù)器上調(diào)試JavaScript
文件 81
9.2 Fiddler AutoResponder的工作
原理 82
9.3 Fiddler在線調(diào)試JavaScript文件 82
9.4 浪漫的程序員 85
9.5 替換網(wǎng)頁中的圖片 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響應(yīng) 95
10.8 讀寫txt文件 96
10.9 使用正則表達(dá)式 96
10.10 保存Session 97
10.11 讀取Session,并且使用Fiddler
來發(fā)送 97
第 11章 深入理解Cookie機(jī)制 98
11.1 HTTP協(xié)議是無狀態(tài)的 98
11.2 會話機(jī)制 98
11.3 Cookie機(jī)制 100
11.4 Cookie是什么 100
11.5 Cookie的作用 101
11.6 抓包觀察上海科技館網(wǎng)站的
登錄 102
11.7 Cookie的屬性 103
11.8 Cookie的分類 104
11.9 Cookie保存在哪里 104
11.10 使用和禁用Cookie 105
11.11 網(wǎng)站自動登錄的原理 106
11.12 Cookie和文件緩存的區(qū)別 106
11.13 Cookie泄露隱私 107
第 12章 Fiddler實現(xiàn)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 網(wǎng)站退出的作用 112
第 13章 HTTP基本認(rèn)證 113
13.1 什么是HTTP基本認(rèn)證 113
13.1.1 路由器管理頁面使用基本
認(rèn)證 114
13.1.2 HTTP基本認(rèn)證的優(yōu)點 117
13.1.3 HTTP基本認(rèn)證的缺點 117
13.1.4 使用TextWizard工具 117
13.1.5 客戶端的使用 117
13.2 摘要認(rèn)證 118
第 14章 Fiddler手機(jī)抓包 119
14.1 環(huán)境準(zhǔn)備 119
14.2 Fiddler截獲手機(jī)原理圖 119
14.3 截獲手機(jī)發(fā)出的HTTP包有什么
作用 120
14.4 手機(jī)抓包 120
14.4.1 配置Fiddler允許“遠(yuǎn)程
連接” 120
14.4.2 獲取Fiddler所在機(jī)器的
IP地址 121
14.4.3 手機(jī)上設(shè)置代理
服務(wù)器 121
14.4.4 測試Fiddler捕獲手機(jī)
發(fā)出的HTTP 123
14.4.5 捕獲手機(jī)上的HTTPS 123
14.4.6 Apple設(shè)備需要使用插
件制作新證書 123
14.4.7 iOS設(shè)備安裝證書方法 124
14.4.8 Android設(shè)備安裝證書
方法一 125
14.4.9 Android設(shè)備安裝證書
方法二 126
14.4.10 測試Fiddler捕獲手機(jī)的
HTTPS 127
14.5 設(shè)置過濾 127
14.6 如何卸載證書 128
14.7 手機(jī)抓包提醒 128
第 15章 Fiddler發(fā)送HTTP請求 129
15.1 Fiddler Composer發(fā)送HTTP
請求 129
15.1.1 Composer發(fā)送Get
請求 129
15.1.2 Composer的編輯模式 130
15.1.3 Composer發(fā)送Post
請求 130
15.1.4 Composer編輯之前捕獲的
HTTP請求 131
15.2 Fiddler重新發(fā)送HTTP請求 131
15.2.1 Replay菜單 131
15.2.2 簡單的性能測試 132
15.2.3 先編輯再發(fā)送 133
15.3 安全測試之重放攻擊 133
15.3.1 重放攻擊是怎么發(fā)生的 133
15.3.2 重放攻擊的危害 133
15.3.3 重放攻擊的解決方案 133
15.3.4 APP驗證碼重放 134
15.4 查找和登錄相關(guān)的Cookie 136
第 16章 Fiddler實現(xiàn)弱網(wǎng)測試 139
16.1 什么是弱網(wǎng) 139
16.2 弱網(wǎng)環(huán)境帶來的問題 140
16.3 弱網(wǎng)測試的目的 140
16.4 弱網(wǎng)的場景 140
16.5 Fiddler模擬網(wǎng)絡(luò)延遲 140
16.6 精確控制網(wǎng)速 141
16.7 Fiddler模擬網(wǎng)絡(luò)中斷 142
16.8 實例:Fiddler返回500狀態(tài)碼 142
16.9 Fiddler模擬網(wǎng)絡(luò)超時 143
第 17章 自動化測試和接口測試 144
17.1 自動化測試分類 144
17.2 分層的自動化測試?yán)砟睢?44
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 如何學(xué)習(xí)Web自動化測試和
性能測試 149
第 18章 JMeter工具使用介紹 151
18.1 JMeter介紹 151
18.2 JMeter的下載和運(yùn)行 151
18.3 創(chuàng)建測試任務(wù) 152
18.4 添加HTTP請求 153
18.5 實例:密碼用MD5加密 154
第 19章 JMeter天氣接口自動化測試 160
19.1 天氣查詢的例子 160
19.2 天氣查詢網(wǎng)站抓包 160
19.3 抓包分析 161
19.4 獲取城市地區(qū)代碼 162
19.5 處理JMeter中HTTP響應(yīng)
亂碼 163
19.6 添加驗證點 164
19.7 使用用戶自定義變量 165
19.8 正則表達(dá)式提取城市地區(qū)代碼 166
19.9 獲取天氣 167
第 20章 JMeter中BeanShell的用法 169
20.1 什么是BeanShell 169
20.2 操作變量 169
20.3 JMeter有哪些BeanShell 170
20.4 BeanShell調(diào)用自己寫的jar包
進(jìn)行MD5加密 171
第 21章 自動登錄禪道和自動開Bug 174
21.1 HTTP Cookie管理器 174
21.2 HTTP請求默認(rèn)值 175
21.3 禪道介紹和部署 175
21.4 禪道操作和抓包分析 176
21.4.1 第 一步,自動登錄禪道 176
21.4.2 第二步,創(chuàng)建一個新的
Bug 181
21.4.3 第三步,找到剛剛新建
Bug的ID 184
21.4.4 第四步,修改Bug狀態(tài)為
“已解決” 185
21.4.5 第五步,關(guān)閉Bug 187
21.4.6 總結(jié) 187
第 22章 JMeter給網(wǎng)站做壓力測試 188
22.1 案例介紹 188
22.2 壓力測試的目的 188
22.3 抓包分析Mozy網(wǎng)站的登錄
過程 189
22.4 抓包分析 190
22.5 實現(xiàn)Mozy登錄 191
22.6 簡單的壓力測試 193