一、Filter介紹
Fiddler是一款免費的web調試代理工具,不僅可以查看和修改HTTP請求和響應數據,並且還有非常強大的過濾功能,這讓我們在調試過程中能夠過濾掉不必要的內容,大大提高調試效率。Filter是Fiddler中非常重要的一個功能,通過Filter可以實現只展示特定內容、過濾掉無關內容、快速定位調試信息等功能。
二、Filter的基礎使用
Fiddler的主界面中最上方是Filter選項卡,我們在這裡可以輸入過濾的關鍵詞,下方會自動顯示符合條件的會話列表。最簡單的使用方法就是輸入關鍵詞,然後點擊「Show Only Matching Sessions」按鈕,就可以看到符合條件的會話列表,如下所示:
//簡單filter示例 //過濾掉所有URL地址中包含「baidu」關鍵字的會話 if (oSession.uriContains("baidu")) { oSession["ui-hide"] = "true"; }
除了uriContains,Fiddler還支持其他多種過濾方式,例如:uriMatches、uriEquals、oSession.RequestHeaders.AllKeys.Contains()等。同時,我們還可以利用not關鍵字實現反向匹配,例如:「not(uriContains(“facebook”))」,這樣的Filter就是過濾掉所有包含「facebook」的會話。
三、Filter高級功能
1、正則表達式的使用
除了簡單的文本過濾之外,Fiddler還支持使用正則表達式進行過濾。在Filter選項卡中,勾選「Use regular expressions」選項,就可以在過濾關鍵字輸入框中使用正則表達式了。
//正則表達式filter示例 //過濾掉URL中以.baidu.com為結尾的會話 if (oSession.uriMatches(".*/[.]?baidu[.][^/]*$")) { oSession["ui-hide"] = "true"; }
2、自定義列的添加和過濾
Fiddler中可以方便地添加自定義列,在自定義列中可以顯示我們需要的信息,例如請求頭、響應頭信息、頁面載入時間、HTTP狀態碼等。自定義列中的內容也支持過濾操作,在Filter選項卡中,點擊「Filter by Column」按鈕就可以進行自定義列的過濾。
//自定義列和自定義列過濾filter示例 //自定義列名「MyHeader」,顯示oSession.RequestHeaders["MyHeader"]的值 FiddlerObject.UI.lvSessions.AddBoundColumn("MyHeader","MyHeader value","RequestHeaders", "MyHeader"); //過濾掉MyHeader值為"SensitiveValue"的會話 if (oSession.RequestHeaders["MyHeader"]=="SensitiveValue") { oSession["ui-hide"] = "true"; }
3、JavaScript腳本的使用
Fiddler支持在Filter中使用JavaScript腳本,這讓我們在過濾方面有了更強大的控制。通過JavaScript腳本我們可以實現更為複雜的邏輯過濾,以及定位特定的會話信息。
//JavaScript腳本filter示例 //過濾掉所有含有圖片和腳本的會話 if(oSession.oResponse.headers.ExistsAndContains("Content-Type", "image/") || oSession.oResponse.headers.ExistsAndContains("Content-Type", "script/")){ oSession["ui-hide"] = "true"; }
四、Filter的效率和性能
Filter的效率和性能對於Fiddler的使用和性能至關重要。當我們的過濾條件變得複雜或者數據量變得龐大時,Filter的效率和性能就會受到一定的影響。在實際使用中,推薦在Filter條件中使用最簡單的文本過濾,避免使用反覆匹配的過濾條件以及複雜的JavaScript操作。
五、總結
Fiddler的Filter功能非常強大,可以讓我們快速定位並修復錯誤。無論是基礎還是高級的Filter操作,都可以通過Fiddler的幫助文檔和詳細的API進行實現。在實際開發中,我們可以靈活地使用Filter功能,達到根據需求進行快速和準確的定位與調試的目的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258401.html