案例:利用Fiddler抓取蘇寧易購網站數據包分析
抓包軟件:Fiddler4
請求名字:www.suning.com
詳細內容:
一、了解數據包區域的字段含義
圖1數據包區域
#:順序號,按照抓包的順序從1遞增(3)
Result:HTTP狀態碼(200)
Protocol:請求使用的協議,如HTTP/HTTPS/FTP等(HTTPS)
HOST:請求地址的主機名或域名(www.suning.com)
URL:請求資源的位置
Body:請求大小(50764byte)
Caching:請求的緩存過期時間或者緩存控制值
Content-Type:請求響應的類型(htm,編碼utf-8)
Process:發送此請求的進程ID
Comments:備注
Custom:自定義值
二、查看數據包的具體內容
雙擊擊具體的一條數據包可以在右側菜單點擊Insepector查看詳細內容。分為請求(即客戶端發出的數據)和響應(服務器返回的數據)兩部分。
圖2數據包具體內容
圖3 發送請求數據區域
圖4 響應區域
三、Request Header
下面是對Request Header區域各個item做介紹
圖5 Request Header
請求方式:GET
協議:HTTP/1.1
1.Client頭域
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8(瀏覽器端可以接受的媒體、文件類型)
Accept-Encoding: gzip, deflate, br(指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip、deflate,br))
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2(瀏覽器申明自己的接收語言)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0(告知服務器客戶端使用的操作系統與瀏覽器的名稱和版本)
2、Cookie頭域
有的請求不發送Cookies,有的請求有Cookies。
目的:將cookie值發送給服務器
3、Security 頭域
Upgrade-Insecure-Requests: 1
4、Transport 頭域
Connection: keep-alive TCP連接不會關閉
Host: www.suning.com (Host:發送請求時,該報頭域是必需的。主要用於指定被請求資源的Internet主機和端口號,通常從HTTP URL 中提取出來)
四、Response Header
1. Cache頭域
Date:生成消息的具體時間和日期
Expires:瀏覽器在指定過期時間內使用本地緩存
2. Entity頭域
Last-Modified:用於指示資源的最后修改日期和時間
Content-Type:Web服務器告知瀏覽器自己響應對象的類型和字符集
Content-Length:指明實體正文長度,以字節方式存儲的十進制數字表示。在數據下行中,要預先在服務器中緩存所有數據,然后所有數據一並發給客戶端
3. Miscellaneous頭域
Server:指明HTTP服務器的軟件信息
X-Ser: BC5_dx-hunan-yueyang-1-cache-1
4、Security 頭域
strict-transport-security: max-age=300
5. Transport頭域
connection:Keep—alive TCP連接不會關閉
五、HTTP認證過程
1. 客戶端發送HTTP Request給服務器;
2. Request中未包含Authorization header,服務器會返回一個401錯誤給客戶端,且在Response中的header“www-Authenticate”中添加信息;
3. 客戶端將用戶名和密碼以base64加密后,放在Authorization中發送給服務器,認證成功;
4. 服務器將Authorization header中的用戶名和密碼去除,進行驗證。如果驗證通過,將根據請求發送資源給客戶端;
HTTP OAuth認證:OAuth對於http來說,就是放在Authorization header中的不是用戶名密碼,而是一個token(令牌)。
客戶端的使用:客戶端若要跟“使用基本認證的網站”進行交互,將用戶名密碼加載Authorization header中即可。
六、欄圖標說明
通過上面的截圖,可以看到每個請求的前面都有一個小圖標,不同的圖標代表了不同的含義,整理如下:
圖6 圖標說明