fiddler是基於C#的HTTP抓包工具。html
fiddler的原理:git
fiddler是http代理服務器,它會抓取瀏覽器向服務器發送的HTTP請求,而後在將該請求發送到服務器。再獲取從服務器返回的請求結果,將結果發送到瀏覽器。github
同類的工具備: httpwatch, firebug, wireshark瀏覽器
![](http://static.javashuo.com/static/loading.gif)
該圖片來源於網絡服務器
注意:fiddler抓包的時候,若是沒有正常退出的話,可能會致使你抓取的網站沒法正常使用
解決方法:重啓fiddler,該網站就能正常使用了。
fiddler經常使用按鈕:
一、按F12出現左下角的抓取圖標,表示fiddler開始抓包了。
抓取到的頁面URL信息連接不一樣顏色表明的含義:
此圖來源於網絡網絡
成功抓取頁面後以下,點擊左側抓取到的URL連接信息,右側會顯示解析後的URL連接信息。
![](http://static.javashuo.com/static/loading.gif)
二、回放功能:Replay(Ctrl + R),選中一個請求點擊replay就會再次發送被選中的請求。工具
![](http://static.javashuo.com/static/loading.gif)
三、如何設置顯示工具欄?測試
點擊View-->show Toolbar就會以下圖顯示工具欄網站
![](http://static.javashuo.com/static/loading.gif)
四、如何設置URL的連接顏色?spa
![](http://static.javashuo.com/static/loading.gif)
設置成功後以下圖連接顏色顯示爲紅色
![](http://static.javashuo.com/static/loading.gif)
五、如何設置備註?
選中連接,點擊氣泡圖標,填入備註
![](http://static.javashuo.com/static/loading.gif)
設置備註後以下:
![](http://static.javashuo.com/static/loading.gif)
六、保存抓取的包
![](http://static.javashuo.com/static/loading.gif)
經常使用的fiddler功能有哪些呢?
一、如何抓取手機APP的數據?
二、如何建立假頁面進行測試?
三、如何實現慢網速?
四、如何對抓取到的頁面進行過濾?
下面咱們一個一個來進行講解:
一、如何抓取手機APP的數據?
如何用fiddler工具抓取手機上的包?
一、必須在同一局域網內,設置手機代理轉發,將手機上的數據流轉發到咱們的fiddler的工具上,
由fiddler工具訪問網絡從而獲取到咱們想要的內容。
設置代理的步驟:
二、以下圖8888爲(默認使用)端口號,勾選容許fiddler進行計算機遠程鏈接
三、在手機上設置代理,先在Windows上運行cmd輸入ipconfig查看ip,
我電腦和手機鏈接的是同一個路由器(wifi:lin)因此個人ip地址是看無線局域網適配器 無線網絡鏈接的IPV4。
四、在手機上找到wifi設置代理爲手動,填入IP地址和端口號
五、fiddler點擊f12快捷方式,開始抓包。而後手機開始進行操做。
以下圖爲打開手機自帶瀏覽器,輸入www.imocc.com慕課網網站。
二、如何建立假頁面進行測試?
什麼是假頁面呢?就是在抓取原有的頁面到本地,對原有頁面按測試要求進行修改。
用修改後的頁面替換原有頁面,對頁面進行測試。
該功能通常用於在項目代碼未更新,新的UI頁面還未正常使用的狀況下,不影響他人測試的狀況下,使用抓包直接修改頁面代碼改成與新UI頁面一致進行測試。
Fiddler中使用AutoResponder建立規則替換線上文件
咱們的目標是把「個人地盤-禪道」替換爲「個人地盤1-禪道」
一、點擊F12抓取包,而後在瀏覽器中輸入禪道地址,進入禪道首頁,再切換到測試模塊,就會以下抓取到頁面信息。而後點擊F12結束抓包。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
二、點擊選擇被抓取的頁面 點擊Inspectors-->點擊解碼-->點擊View in Notepad
三、點擊View in Notepad保存到記事本後,選擇另存爲將文件以htm格式保存在本地。
![](http://static.javashuo.com/static/loading.gif)
四、用Notepad++打開剛剛保存到本地的文件,我把「個人地盤-禪道」改成「個人地盤1-禪道」
![](http://static.javashuo.com/static/loading.gif)
五、咱們還時選擇剛剛被抓取的頁面,點擊AutoResponder,勾選Enable Rules 和Unmatched requests passthrough,點擊增長規則add Rule
![](http://static.javashuo.com/static/loading.gif)
六、點擊選擇替換的規則文件,而後咱們選擇剛剛保存的fiddler文件
![](http://static.javashuo.com/static/loading.gif)
七、點擊save保存規則
八、點擊F12抓取包,而後在瀏覽器中輸入禪道地址,進入禪道首頁,而後就會發現「個人地盤-禪道」被替換爲「個人地盤1-禪道」。這就表示成功了。
三、如何實現慢網速?
RULES下面performance-->Simulate Modem Speeds直接設置慢網速
設置後你再進行抓包,你會發現抓包的速度慢了不少
若是這個速度你仍是以爲快,看不出來差異,那麼你能夠
點開Rules → Customize Rules 就會彈出一個CustomRules.js文件,修改該文件,加粗部分數值也可使實現慢網速。
注意:若是該文件沒有自動彈出,那麼能夠去\Fiddler2\Scripts文件夾下進行尋找。
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] =
"300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "
150"
}
四、如何對抓取到的頁面進行過濾?
能夠利用filters設置過濾,選擇Use Filters-->選擇Host模式,咱們選擇Show the following Hosts-->
再填入要過濾出來的域名(多個域名能夠用分隔號;進行分割)-->在選擇Actions選項並選擇Run Filterset Now。
注意:過濾頁面填入是不要填入"http://"
過濾結果就以下圖左邊顯示
參考資料: