Fiddler抓包分析

首先了解http報文結構

  參看 HTTP請求/響應報文與工作原理詳解

簡單歸納:

請求報文

HTTP 請求報文由請求行、請求頭部、空行 和 請求包體 4 個部分組成

在此使用fiddler抓包工具抓取一個請求包:



根據HTTP報文格式
請求行包括請求方法、URL、協議版本
圖中顯示這個請求包的請求行:
   請求方法:GET
   URL:http://baidu.com/
   協議版本:HTTP/1.1
接下來是請求頭部,請求頭部一般是由頭部字段名稱、冒號、值 組成(由於HTTP報文是面向文本的報文中的字段都是由ascii碼組成)
  Accept: text/html, application/xhtml+xml, image/jxr, */*
        Accept表示客戶端可識別的響應內容類型列表
        星號“*”用於按範圍將類型分組 “*/*”指示可接受全部類型
  Accept-Language: zh-Hans-CN, zh-Hans;q=0.5
       Accept-Language:客戶端可接受的自然語言
  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
        User-Agent:產生請求的瀏覽器類型
  Accept-Encoding: gzip, deflate
        Accept-Encoding:客戶端可接受的編碼壓縮格式
  Host: baidu.com
       Host:請求的主機名,允許多個域名同處一個IP 地址,即虛擬主機
  Connection: Keep-Alive
      Connection:連接方式(close 或 keepalive)
      對於請求來說:close(告訴 WEB 服務器或者代理服務器,在完成本次請求的響應後,斷開連接,不等待本次連接的後續請求了)。keepalive(告訴WEB服務器或者代理服務器,在完成本次請求的響應後,保持連接,等待本次連接的後續請求)
  接下來全都Cookie字段了
   
fiddler中切換headers以一種更爲直觀的方式觀看..

請求包體不在 GET 方法中使用,而是在POST 方法中使用。POST 方法適用於需要客戶填寫表單的場合。與請求包體相關的最常使用的是包體類型 Content-Type 和包體長度 Content-Length

由於此處http包的請求方法是GET所以這個請求包沒有包體


響應報文

響應報文結構


上述請求包的響應報文在fiddler中顯示:


對於響應包的狀態行:

   協議版本:HTTP/1.1

   狀態碼:302

        301和302狀態碼都表示重定向,就是說瀏覽器在拿到服務器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取(用戶看到的效果就是他輸入的地址A瞬間變成了另一個地址B)——這是它們的共同點。他們的不同在於。301表示舊地址A的資源已經被永久地移除了(這個資源不可訪問了),搜索引擎在抓取新內容的同時也將舊的網址交換爲重定向之後的網址;302表示舊地址A的資源還在(仍然可以訪問),這個重定向只是臨時地從舊地址A跳轉到地址B,搜索引擎會抓取新的內容而保存舊的網址。

        狀態碼由三位數字組成,第一位數字表示響應的類型,常用的狀態碼有五大類如下所示:
  1xx:表示服務器已接收了客戶端請求,客戶端可繼續發送請求;
  2xx:表示服務器已成功接收到請求並進行處理;
  3xx:表示服務器要求客戶端重定向;
  4xx:表示客戶端的請求有非法內容;
  5xx:表示服務器未能正常處理客戶端的請求而出現意外錯誤;

   狀態碼描述:Moved Temporarily

響應包的響應頭部更爲清晰的觀看方式..


         Location:Location響應報頭域用於重定向接受者到一個新的位置。例如:客戶端所請求的頁面已不存在原先的位置,爲了讓客戶端重定向到這個頁面新的位置,服務器端可以發回Location響應報頭後使用重定向語句,讓客戶端去訪問新的域名所對應的服務器上的資源;
  Server:Server 響應報頭域包含了服務器用來處理請求的軟件信息及其版本。它和 User-Agent 請求報頭域是相對應的,前者發送服務器端軟件的信息,後者發送客戶端軟件(瀏覽器)和操作系統的信息。
  Vary:指示不可緩存的請求頭列表;
  Connection:連接方式;
  對於響應來說:close(連接已經關閉); keepalive(連接保持着,在等待本次連接的後續請求); Keep-Alive:如果瀏覽器請求保持連接,則該頭部表明希望WEB 服務器保持連接多長時間(秒);例如:Keep-Alive:300;
  WWW-Authenticate:WWW-Authenticate響應報頭域必須被包含在401 (未授權的)響應消息中,這個報頭域和前面講到的Authorization 請求報頭域是相關的,當客戶端收到 401 響應消息,就要決定是否請求服務器對其進行驗證。如果要求服務器對其進行驗證,就可以發送一個包含了Authorization 報頭域的請求;
  空行:最後一個響應頭部之後是一個空行,發送回車符和換行符,通知服務器以下不再有響應頭部。
  響應包體:服務器返回給客戶端的文本信息;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章