whistle是基於Node實現的抓包調試工具,本文主要介紹 whistle 搜索過濾抓包數據功能,其它詳細內容及用法參見 GitHub:github.com/avwo/whistl…html
whistle 提供了四種搜索及過濾抓包數據的方法,方便你們快速精確獲取想要的抓包數據,分別爲:git
whistle支持經過 pattern enable://hide [filters]
方式隱藏抓包數據,如:github
pattern
能夠爲域名、路徑、通配符、正則等,詳細內容參見:wproxy.org/whistle/pat… ,並能夠結合 filter 可再根據請求方法、請求頭、請求內容、響應狀態碼、響應頭進行二次過濾。正則表達式
ke.qq.com enable://hide
*.url1.cn enable://hide excludeFilter:///^[^?]+\.js(\?|$)/i
複製代碼
上述配置效果以下,訪問ke.qq.com,Network 上看不到 ke.qq.com
域的任何請求,*.url1.cn
域名也只能看到後綴爲 .js
的請求。cookie
Network界面上方 Filter
菜單能夠配置界面過濾規則,界面從whistle獲取的抓包數據先在此過濾後再決定是否顯示到列表中。ide
Filter菜單裏面包含 ExcludeFilter
和 IncludeFilter
兩種過濾方式,支持經過關鍵字(不區分大小寫)或正則表達式匹配URL(pattern
)、請求方法(m:pattern
)、客戶端IP(i:pattern
)、請求頭內容(h:pattern
),請求頭的host字段(H:pattern
),多個條件用空格或換行符隔開:工具
urlPatten
m:methodPattern
i:clientIpPattern
h:headersPattern
b:bodyPattern
H:reqHostPattern
複製代碼
如:post
ExcludeFilter:性能
/\.js/i
h:x-test=hide
m:post
複製代碼
IncludeFilter:url
.url1.cn
hm.baidu.com
ke.qq.com
複製代碼
上述表示界面只顯示URL包含 .url1.cn
、 或 hm.baidu.com
、 或 ke.qq.com
(不區分大小寫),且URL不能包含 .js
、 請求頭裏面不能有 x-test=hide
(能夠在cookie裏面種這麼一個值,則請求不會顯示)、請求方法不能爲 post
。
Filter菜單配置的過濾規則是先將全部抓包數據請求到本地再進行過濾,且沒法將過濾方式直接分享給他人,若是須要經過服務端過濾提高性能,能夠用這麼的請求參數過濾方式。
whistle 支持在抓包界面的URL設置過濾參數,後臺會自動讀取這些參數進行過濾,一樣支持經過URL、客戶端IP、請求頭進行過濾:
http://local.whistlejs.com/#network?url=keyword&name=key0&value=keyword0&name1=key1&value=keyword1&...&name5=key5&value5=keyword5&ip=self,10.10.10.10
複製代碼
性能方面考慮,請求參數過濾方式不支持正則,只支持關鍵字不區分大小寫
上述參數都是可選,其中 url
匹配請求URL,name, name1, ..., name5
共可設置6個key,對應6個關鍵字,可分別匹配請求頭6個字段的值(這6個字段可選,必須按順序設置,不能跳過其中一個,請求頭的值是模糊匹配的,若是想變成精確匹配加個參數 &mtype=exact
便可),ip爲精確匹配對應的客戶端IP(self
關鍵字表示匹配本機IP)。
上述幾種過濾方法都是在抓包數據顯示到Network以前作的過濾,主要用於精簡Network的抓包數據,被過濾掉的數據沒法再顯示出來,除此以外,whistle提供了快速搜索方法,經過Network下方的搜索框能夠根據URL、請求方法、客戶端或服務端IP、響應狀態碼、請求頭或響應頭、請求內容或響應內容快速搜索想要的抓包數據。
其中:
/regexp/i
),匹配請求URLpattern
能夠爲關鍵字或正則表達式(/regexp/i
),匹配請求方法pattern
能夠爲關鍵字或正則表達式(/regexp/i
),匹配客戶端或服務端IPcode
能夠爲關鍵字或正則表達式(/regexp/i
),匹配響應狀態碼pattern
能夠爲關鍵字或正則表達式(/regexp/i
),匹配請求或響應內容pattern
能夠爲關鍵字或正則表達式(/regexp/i
),匹配請求或響應頭(包括key和value)whistle提供了靈活多樣的過濾抓包數據,用戶能夠根據不一樣的場景使用不一樣的過濾方式,通常經常使用Network下方搜索框快速搜索抓包數據便可;配置規則用於永久過濾減小無用抓包數據的干擾(這種過濾方式對全部用戶生效,且插件也將沒法獲取這部分抓包數據);界面Filter和請求參數過濾方式只對當前頁面生效,可用於個性化過濾抓包數據。