【HTTP】Fiddler(三)- Fiddler命令列和HTTP斷點調試

來源:互聯網
上載者:User

標籤:實際應用   訪問   基本   可見   輸入   cto   ddl   別名   ctr   

【轉】【HTTP】Fiddler(三)- Fiddler命令列和HTTP斷點調試

一. Fiddler內建命令。

上一節(使用Fiddler進行抓包分析)中,介紹到,在web session(與我們通常所說的session不是同一個概念,這裡的每條HTTP請求都成為一個session)介面中可以看到Fiddler抓取的所有HTTP請求.而為了更加方便的管理所有的session, Fiddler提供了一系列內建的函數用於篩選和操作這些session(習慣命令列操作linux的童鞋應該可以感受到這會有多麼方便).輸入命令的位置在web session管理面板的下方(通過快速鍵alt+q可以focus到命令列).

Fiddler內建的命令有如下幾種:

1. select命令。

選擇所有相應類型(指content-type)為指定類型的HTTP請求,如選擇圖片,使用命令select image.而select css則可以選擇所有相應類型為css的請求,select html則選擇所有響應為HTML的請求(怎麼樣,是不是跟SQL語句很像?)。是執行select image之後的結果:


2. allbut命令。

allbut命令用於選擇所有響應類型不是給定類型的HTTP請求。如allbut image用於選擇所有相應類型不是圖片的session(HTTP請求),該命令還有一個別名keeponly.需要注意的是,keeponly和allbut命令是將不是該類型的session刪除,留下的都是該類型的響應。因此,如果你執行allbut xxxx(不存在的類型),實際上類似與執行cls命令(刪除所有的session, ctrl+x快速鍵也是這個作用)

3. ?text命令

選擇所有 URL 匹配問號後的字元的全部 session

4. >size 和 <size命令

選擇響應大小大於某個大小(單位是b)或者小於某個大小的所有HTTP請求

5. =status命令

選擇響應狀態等於給定狀態的所有HTTP請求。

例如,選擇所有狀態為200的HTTP請求:=200

6. @host命令

選擇包含指定 HOST 的全部 HTTP請求。例如:@csdn.net

選擇所有host包含csdn.net的請求

7. Bpafter, Bps, bpv, bpm, bpu

這幾個命令主要用於大量設定斷點

Bpafter xxx: 中斷 URL 包含指定字元的全部 session 響應

Bps xxx: 中斷 HTTP 響應狀態為指定字元的全部 session 響應。

Bpv xxx: 中斷指定請求方式的全部 session 響應

Bpm xxx: 中斷指定請求方式的全部 session 響應。等同於bpv xxx

Bpu xxx:與bpafter類似。

當這些命令沒有加參數時,會清空所有設定了斷點的HTTP請求。

 更多的其他命令可以參考Fiddler官網手冊。

 

二. 使用Fiddler進行HTTP斷點調試。

這是Fiddler又一強大和實用的工具之一。通過設定斷點,Fiddler可以做到:

1. 修改HTTP要求標頭資訊。例如修改要求標頭的UA, Cookie, Referer 資訊,通過“偽造”相應資訊達到達到相應的目的(調試,類比使用者真實請求等)。

2. 構造請求資料,突破表單的限制,隨意提交資料。避免頁面js和表單限制影響相關調試。

3. 攔截響應資料,修改響應實體。

為什麼以上方法是重要的?假設js前端程式員和伺服器程式員是分工合作的,js程式員想要調試Ajax請求的功能,這樣便不必等待伺服器端程式員開發好所有介面之後再開始開發js端的ajax請求功能,因為通過“類比”真實的伺服器端的響應,便可以保證功能的正確性,而伺服器端開發程式員,只要保證最終的響應是符合規定的即可。這大大簡化了程式開發的效率,當然也降低了不同業務線程式員聯調的難度。

有兩種方法設定斷點:

1.fiddler功能表列->rules->automatic Breakpoints->選擇斷點方式,這種方式下設定的斷點會對之後的所有HTTP請求有效。

有兩個斷點位置:

a. before response。也就是發送請求之後,但是Fiddler代理中轉之前,這時可以修改請求的資料。

b.after response。也就是伺服器響應之後,但是在Fiddler將響應中轉給用戶端之前。這時可以修改響應的結果。

2.命令列下輸入。Bpafter xxx或者bpv,bpu,bpm等設定斷點。這種斷點只針對特定類型的請求。

我們以本地的web項目為例,示範如何簡單的設定HTTP斷點:

1.首先設定Firefox的代理,使之可以抓取所有的HTTP請求(localhost的請求,也可以在filter中設定只抓取intranet請求),設定如所示:

 

2. 這時用web開啟本地的項目。頁面的內容為:

 

4. 設定響應後斷點(after response breakpoint),可以通過命令列設定:bpafter localhost。鍵入斷行符號之後,web再次訪問檔案,通過Fiddler的web session介面可以看到,請求已經被掛起來了,而web瀏覽器也一直處於載入的狀態。觀察右側的inspector面板下,也出現了新的東西:

 

這時我們就可以修改響應的資訊了。修改過程為:

切換到textView子面板,選擇需要修改的部分,然後點擊 “run to complete“,便可回送修改後的響應。假設我們修改後的內容如下:

 

點擊執行後,開啟剛剛的web介面。可以看到的頁面的變化。

 

可見,頁面的響應已經有了相應的變化。這就是響應後斷點。當然實際應用中,斷點的設定和響應的修改會比這複雜的多,這裡只是基本的樣本。

終止斷點的方式有:

1. 在inspector介面點擊“run complete“即會終止本次HTTP請求的斷點。

2. 輸入go命令,也會使得當前的請求跳過斷點。

3. 在rules->auto breakpoint中disabled斷點即可。

總之,Fiddler的斷點功能非常強大,關於它的進一步學習和應用,需要一個不斷積累和摸索的過程。

 

【HTTP】Fiddler(三)- Fiddler命令列和HTTP斷點調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.