HTTP 抓包實戰 HTTP抓包实战

肖佳

買這商品的人也買了...

商品描述

HTTP抓包利用Fiddler抓包工具來捕獲HTTP數據包,
然後對其進行重發、編輯等操作。
HTTP抓包的用途非常廣泛,主要用於Web開發調試、
軟件自動化測、接口自動化測試、性能測試和網絡爬蟲等方面。
也用來檢查網絡安全。抓包也經常被用來進行數據截取等。

本書主要圍繞抓包展開。
全書共有22章,著重介紹了HTTP協議、
如何使用Fiddler對HTTP包進行抓取,如何對HTTP進行分析,
以及使用JMeter等工具來發送HTTP包以實現軟件的自動化測試。
本書圖文並茂,實例豐富,還有配套的視頻教程,
方便讀者參考並動手實踐。

本書適合前端開發工程師、測試工程師、
線上故障支持人員、接口開發人員和Web開發人員閱讀,
也適合對自動化測試感興趣的人員閱讀。

作者簡介

肖佳
VMware高級測試工程師,博客園知名博主(網名小坦克),
撰寫了很多軟件開發和測試方面的技術文章;
有10多年的軟件開發測試經驗,
有豐富的手動測試和自動化測試經驗;
個人博客閱讀量已經超過500萬,樂於分享,
善於用淺顯的語言來講解技術。

目錄大綱

第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