捕獲HTTP GET數據包
打開Wireshark,設置合適的網卡
打開瀏覽器隨便瀏覽一個網頁,便可在Wireshark上顯示出網頁的數據包
Wireshark過濾顯示HTTP GET數據包:在過濾器中輸入http.request.method==GET
觀察Packet List面板中info字段,選擇有"GET"字樣的數據包,右鍵選擇追蹤HTTP流,進入數據流追蹤窗口,可以得到這一次HTTP傳輸的所有數據包
捕獲cookie數據包
在過濾器中輸入http mathces "Set-Cookie",觀察Packet List 面板中的Cookie數據包,右鍵選擇追蹤HTTP數據流即可顯示這一次HTTP傳輸的所有數據包
HTTP緩存機制
-
HTTP為了提高用戶響應速度使用了緩存技術。緩存有多種規則,根據是否需要重新向服務器發起請求來分類,可以將其分為強制緩存、對比緩存。
-
強制緩存指如果緩存有效,不需要再查詢服務器,而對比緩存不管是否有效,都需要與服務器進行確認。
兩類緩存規則可以同時存在,強制緩存優先級高於對比緩存。
對比緩存有兩種規則: Last-Modified:lf Modified-Since和Etag: lf-None-Match規則。
Last-Modified:lf-Modified-Since規則
- Last-Modified:指服務器在響應請求時,在頭部告知瀏覽對象的最后修改時間。
If-Modified-Since:在客戶機再次請求相同資源時,客戶機通過此字段告知服務器本地緩存中此瀏覽對象的最后修改時間
-
服務器收到請求后檢查頭部的lf-Modified-Since字段所含時間,與被請求對象的最后修改時間進行比對。若對象的最后修改時間晚於lf-Mdified-Since,說明對象已被改動過,則重新返回對象,狀態碼置2000K;若對象的最后修改時間早於或等於f-Modifid-Since,說明對象沒有變動,則響應304 Not Modified,告知瀏覽器可以使用其緩存
-
ETag /1f-None-Match規則
- ETag:服務器對象的唯一標識符, 瀏覽器可以根據ETag值緩存數據。
- ETag:服務器對象的唯一標識符, 瀏覽器可以根據ETag值緩存數據。
- lf-None-Match:客戶機再次請求服務器時,通過此字段告知服務器客戶端緩存數據的Etag值。
- 服務器收到請求后發現頭部的fNone Match與被請求對象的唯標識進行比對, 如果兩個值不相同,說明對象已被改動,則響應此對象,返回狀態碼200如果相同, 說明對象沒有變動,則響應304 Not Mdife告知河覽器可以使用其緩存。
HTTP的Cookie機制
HTTP協議本身是無狀態的,不支持服務端保存客戶瀏覽器的狀態信息。但在電子商務等應用類事務中,服務器需要跟蹤保持客戶端的狀態信息,技術人員首先發明了Cookie 技術,再有了后來的Session技術。一般用Cookie 表示儲存在客戶端瀏覽器中的數據,而Session 是保留在Web應用服務器中的客戶端數據。Cookie 技術基本上由四個部分組成,其中包括Web服務器HTTP響應消息中的Cookie首部行Set Cookie和用戶瀏覽器請求消息中的Cookie 首部行Cookie.由於大部分網站都使用了Cookie,因此捕獲一次Cookie交互的數據包是非常容易的。