Python進階(三十五)-Fiddler命令列和HTTP斷點調試

來源:互聯網
上載者:User

標籤:提交   觀察   var   狀態   markdown   合作   select   作用   操作   

Python進階(三十五)-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 和 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能夠做到:

  • 改動HTTP要求標頭資訊。

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

  • 構造請求資料,突破表單的限制,任意提交資料。

    避免頁面js和表單限制影響相關調試。

  • 攔截響應資料,改動響應實體。


    ??為什麼以上方法是重要的?如果js前端程式猿和server程式猿是分工合作的。js程式猿想要調試Ajax請求的功能,這樣便不必等待server端程式猿開發好全部介面之後再開始開發js端的ajax請求功能,由於通過“類比”真實的server端的響應,便能夠保證功能的正確性,而server端開發程式猿,僅僅要保證終於的響應是符合規定的就可以。

    這大大簡化了程式開發的效率,當然也減少了不同業務線程式猿聯調的難度。
    ??有兩種方法設定斷點:

  • 1.fiddler菜單條->rules->automatic Breakpoints->選擇斷點方式,這樣的方式下設定的斷點會對之後的全部HTTP請求有效。 有兩個斷點位置:

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

  • b.after response。也就是server響應之後,可是在Fiddler將響應中轉給client之前。這時能夠改動響應的結果。

  • 2.命令列下輸入。Bpafter xxx或者bpv,bpu,bpm等設定斷點。

    這樣的斷點僅僅針對特定類型的請求。

??我們以本地的web項目為例,示範怎樣簡單的設定HTTP斷點:
??1.首先設定Firefox的代理,使之能夠抓取全部的HTTP請求(localhost的請求,也能夠在filter中設定僅僅抓取intranet請求),設定例如以所看到的:

- 這時用web開啟本地的項目。

頁面的內容為:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VuaHVhcWlhbmcx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="這裡寫圖片描寫敘述" title="">
- 設定響應後斷點(after response breakpoint),能夠通過命令列設定:bpafter localhost。鍵入斷行符號之後。web再次訪問檔案。通過Fiddler的web session介面能夠看到。請求已經被掛起來了,而web瀏覽器也一直處於載入的狀態。觀察右側的inspector面板下,也出現了新的東西:

??這時我們就能夠改動響應的資訊了。

改動過程為:
??切換到textView子面板,選擇須要改動的部分。然後點擊 “run to complete“,便可回送改動後的響應。如果我們改動後的內容例如以下:

??點擊運行後。開啟剛剛的web介面。

能夠看到的頁面的變化。

??可見。頁面的響應已經有了對應的變化。這就是響應後斷點。

當然實際應用中。斷點的設定和響應的改動會比這複雜的多,這裡僅僅是主要的示範範例。
??終止斷點的方式有:

  • 在inspector介面點擊“run complete“即會終止本次HTTP請求的斷點。
  • 輸入Go命令。也會使得當前的請求跳過斷點。
  • 在rules->auto breakpoint中disabled斷點就可以。
    總之。Fiddler的斷點功能非常強大,關於它的進一步學習和應用,須要一個不斷積累和摸索的過程。


Python進階(三十五)-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.