1. 程式人生 > >【HTTP】Fiddler(三)- Fiddler命令列和HTTP斷點除錯

【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的斷點功能非常強大,關於它的進一步學習和應用,需要一個不斷積累和摸索的過程。

相關推薦

HTTPFiddler- Fiddler命令HTTP斷點除錯

一. Fiddler內建命令。 上一節(使用Fiddler進行抓包分析)中,介紹到,在web session(與我們通常所說的session不是同一個概念,這裡的每條HTTP請求都成為一個session)介面中可以看到Fiddler抓取的所有HTTP請求.而為了更加方便的管理所有的session, Fidd

dsPIC33EBootloaderBootloader下位機

前面2節講述了dsPIC33E的Flash儲存結構以及Hex格式,接下來開始講述如何編寫Bootloader下位機和上位機。 本節講述下位機的設計,考慮到執行效率和燒錄時間,我們將主要解析工作放到上位機中,因為PC的執行速度遠高於MCU。在上位機中,我們將Hex檔案解析成一組一組的地址和資料

筆記儲存器

四、輔助儲存器 1.概述 輔助儲存器的特點   輔助儲存器作為主存的後援裝置又稱為外部儲存器,簡稱外存,它與主存一起組成了儲存器系統的主存-輔存層次。輔存具有容量大、速度慢、價格低、可離線儲存資訊等特點,屬“非易失性”儲存器。而主存具有速

Fiddler Composer建立傳送HTTP Request

之前已經寫過兩篇Fiddler的文章了,分別是【Fiddler教程】 【Fiddler script用法】。  我準備把Fiddler寫成一個系列。 Fiddler的功能還有很多, 很多功能都沒有被挖掘出來。這次我們介紹Fiddler中的一個非常有用的功能Composer,是用來建立和傳送HTTP Re

搜索引擎檢索模型

局限 樸素 貝葉斯 匹配 分析 部分匹配 tro 還需要 不同 檢索模型的目的   現實中搜索引擎的檢索策略復雜多變,但是分析起來,核心的目的就兩個,為了:   1. 越相關的結果越靠前;   2. 查詢的結果是完整的。 經典檢索模型 經典信息檢索模型有三類:     1.

20171115BugFree使用手冊Bugfree界面後臺管理

結果 所有 idt 重新 case 系統 切換 cal define 三、Bugfree界面 1. 登錄界面   如圖所示:    2. 主界面   輸入系統提供的默認管理員用戶名:admin,密碼(原始):123456;語言選擇默認“簡體中文”。點擊“登錄”按鈕,來到

JMeter4.0學習之SoapUI創建WebService接口模擬服務端以及JMeter測試SOAP協議性能測試腳本開發

test 點擊 下一步 download enc text div 接口模擬 wid 目錄: 創建WebService接口模擬服務端 下載SoapUI 新建MathUtil.wsdl文件 創建一個SOAP項目 接口模擬服務端配置以及啟動 【闡

NOJ1084演算法實驗四DP_動態規劃花生米

1084.花生米(三) 時限:1000ms 記憶體限制:10000K  總時限:3000ms 描述 五一長假第三天,Tom和Jerry在倉庫散步的時候又發現了一堆花生米(倉庫,又見倉庫……)。這次Tom制定分花生米規則如下:  ???????1、Tom和Je

web框架zheng學習筆記阿里雲自定義映象的使用

要想成功執行zheng專案,必須要安裝JDK,Tomcat,Redis,Zookeeper等工具,如果下次再買新的伺服器,又重新安裝這些軟體,阿里雲提供了自定義映象功能,可以快速複製伺服器,免除了再次配置環境的痛苦。 背景: 華東2區有原來的A伺服器,在華北3區新購了B伺服器,想要把A的系統

Fiddler 頁面分佈以及詳解

Fiddler 一、工具欄 1.備註:工具欄氣泡點選可新增備註,新增成功的備註可以在comment欄中展示; 2.【replay】回放操作:選中一條記錄後,點選【replay】可以再次請求一次該操作, 也可以按鍵盤上的字母【R】,利用快捷鍵回放 3.【〤】清

劍指Offer行榜牛客網練習

1、二進位制中1的個數 題目描述: 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示 程式碼: public class Solution { public int NumberOf1(int n) { String str = Integ

面試演算法——字串

一、詞語變形 題型: 給定兩個字串str1和str2,如果str1和str2中出現的字元種類一樣且每種字元出現的次數也一樣,那麼str1與str2互為變形詞,請實現函式判斷兩個字元是否互為變形詞 舉例: str1=“123”,str2=“231”,返回true; s

Nginx-反向代理伺服器實踐篇之Tomcat+Nginx搭建叢集

繼前面的部落格,本篇部落格來實踐操作體會一下Nginx配置過程如下:(1)到Nginx官網下載Nginx的Windows版本:點選開啟連結(這裡我們使用nginx/Windows-1.4.7版本進行實驗

java簡介

編碼 http ... 設計 適合 不能 高度 代碼格式 操作系統 應用:web後端開發、android-app開發、大數據應用開發 學習:java會過時,但程序設計的思想不會過時 特點:1、面向對象,跨平臺,語法比c++簡單     2、以字節碼的形式運行在虛擬機上   

JavaDateUtil2

繼承 ava sim pla bool private throw ons tar import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat;

USACO15FEB審查黃金Censoring (Gold)

clu amp del lease sed better n) truct mos 題目描述 Farmer John has purchased a subscription to Good Hooveskeeping magazine for his cows, so

BZOJ2940條紋博弈論

span char 一個 處理 || long long 簡單 sizeof .com 【BZOJ2940】條紋(博弈論) 題面 BZOJ 神TM權限題。 題解 我們把題目看成取石子的話,題目就變成了這樣: 有一堆\(m\)個石頭,每次可以取走\(c,z,n\)個,每次取完

學習reactjs——使用npm創建react項目並整合elementUI

web -s from 頁面 rain tle export build head 在實習的過程中了解了react,所以打算使用react搭建一個屬於自己的頁面,如有問題請教正,謝謝。 Github:https://github.com/yclxt/react-elemen

CF1068BLCM數學

div amp pri stream color can con scan namespace 題意:給定b,求lcm(a,b)/a有幾種不同的取值 b<=1e10 思路:只有a取b的因子時答案兩兩不同 1 #include<cstdio> 2 #i

人臉識別之人臉對齊--AAM演算法原文: http://blog.csdn.net/colourfulcloud/article/details/9774017 AAM(Active Appear

原文: http://blog.csdn.net/colourfulcloud/article/details/9774017 AAM(Active Appearance Model)主動外觀模型主要分為兩個階段,模型建立階段和模型匹配階段。其中模型建立階段包括了對訓練樣本分別建立形狀模型(