HTTP 抓包實戰
內容描述
HTTP抓包利用Fiddler抓包工具來捕獲HTTP數據包,
然後對其進行重發、編輯等操作。
HTTP抓包的用途非常廣泛,主要用於Web開發調試、
軟件自動化測、接口自動化測試、性能測試和網絡爬蟲等方面。
也用來檢查網絡安全。抓包也經常被用來進行數據截取等。
本書主要圍繞抓包展開。
全書共有22章,著重介紹了HTTP協議、
如何使用Fiddler對HTTP包進行抓取,如何對HTTP進行分析,
以及使用JMeter等工具來發送HTTP包以實現軟件的自動化測試。
本書圖文並茂,實例豐富,還有配套的視頻教程,
方便讀者參考並動手實踐。
本書適合前端開發工程師、測試工程師、
線上故障支持人員、接口開發人員和Web開發人員閱讀,
也適合對自動化測試感興趣的人員閱讀。
目錄大綱
第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(Moved
Permanently) 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協議壓縮和URL Encode 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第一步,自動登錄禪道176
21.4.2第二步,創建一個新的
Bug 181
21.4.3第三步,找到剛剛新建
Bug的ID 184
21.4.4第四步,修改Bug狀態為
“已解決” 185
21.4.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
作者介紹
肖佳
VMware高級測試工程師,博客園知名博主(網名小坦克),
撰寫了很多軟件開發和測試方面的技術文章;
有10多年的軟件開發測試經驗,
有豐富的手動測試和自動化測試經驗;
個人博客閱讀量已經超過500萬,樂於分享,
善於用淺顯的語言來講解技術。