簡介
Fiddle是位於客戶端和服務器之間的HTTP代理,代理地址是127.0.0.1:8888,端口可在Fiddler中手動修改。Fiddler退出的時候它會自動註銷,這樣不會影響別的程序。若是非正常退出,會形成網頁沒法訪問,須要重啓Fiddler。web
能夠監聽http/https的流量,截獲從瀏覽器或客戶端向服務器發送的http/https請求,查看請求具體內容,修改請求或響應內容。windows
配置
1.設置https
點擊菜單欄Tools--Options,第一次設置會提示安裝證書後端
![](http://static.javashuo.com/static/loading.gif)
點擊Actions--Open Windows Certificate Manager查看安裝的證書api
![](http://static.javashuo.com/static/loading.gif)
2.設置chorme代理
![](http://static.javashuo.com/static/loading.gif)
3.手機設置代理
![](http://static.javashuo.com/static/loading.gif)
再查看電腦的IP,手機與電腦連同一網絡,而後設置代理,主機名是電腦IP地址,端口設置上面監聽端口。瀏覽器
界面
![](http://static.javashuo.com/static/loading.gif)
1、菜單欄
1.File緩存
![](http://static.javashuo.com/static/loading.gif)
- Capture Traffic:默認勾選,表示抓取請求;取消不抓取
- New Viewer:再打開一個頁面
- Load Archive…:用於從新加載以前捕獲到的 SAZ 文件格式保存的會話
- Recent Archives:查看最近以前捕獲到的 SAZ 文件格式保存的會話
- Import Sessions…:從目標文件夾及其子文件夾加載全部 SAZ 文件。緩存和重用密碼。支持導入從其餘工具得到的會話
2.Edit服務器
![](http://static.javashuo.com/static/loading.gif)
- Undelete:恢復以前刪除的會話
- Paste as Sessions:把剪切板裏的會話複製到 web sessions 中,把之前的會話粘貼回來
- Mark:自定義不一樣會話 的顯示顏色
- Unlock for Session:
![](http://static.javashuo.com/static/loading.gif)
3.Rules網絡
![](http://static.javashuo.com/static/loading.gif)
- Automatic Breakpoints:自動斷點
- Customize Rules…:打開 Fiddler ScriptEditor 工具,修改腳本
- Require proxy authentication:若選中此項,則全部未提交 Require proxy authentication 的請求頭的請求會返回 HTTP/407 響應,要求客戶安裝證書
- Apply GZIP Encoding:請求 GZIP 編碼,若選中此項,則只要請求包含了 gzip 標識的 Accept-Encoding 請求頭就會對除了圖片之外的全部相應使用 GZIP HTTP 進行壓縮
- Remove All Encoding:若選中此項,會刪除全部請求相應的 http 內容編碼和傳輸編碼
- Automatically Authenticate:自動進行身份驗證
- User-Agents:選擇不一樣的用戶代理,默認是選擇 disabled
- Performance:此項提供影響 web 性能的簡單選項。若選中了 simulate modem speeds,它會設置全部後續 session 的 flag,把 request-trickle-delay 標誌設置爲 300,全部上傳數據延遲 300ms/kb,若把 response-trickle-delay 標誌位設爲 150,會使全部下載數據延遲 150ms/kb。若選中了 disable caching,將會刪除全部 If-None-Match和If-Modified-Since 請求頭,並添加 Pragma:no-cache 請求頭,選中該項還會刪除響應中的全部 Expires 頭,並把 Cache-Control 響應頭設置成 no-cache,該項沒法阻止瀏覽器重用在所用該選項以前所緩存的響應,在選中該選項後,爲了獲得最佳結果,最好是清空瀏覽器中緩存。若選擇 Catch Always Fresh 會自動響應全部包含 http/304 響應的有條件的 http 請求,表示客戶端緩存是最新的,當訪問的站點沒法正確的設置緩存失效日期時,該選項能夠極大的提升性能。
4.Toolssession
![](http://static.javashuo.com/static/loading.gif)
- Options…:打開 Options 窗口,修改監聽的端口,設置HTTPS抓包,手機抓包等
![](http://static.javashuo.com/static/loading.gif)
- WinINET Options…:打開IE瀏覽器的Internet屬性面板
- Clear WinINET Catch:清空 IE 和其餘應用中所使用的 WinINET 的緩存文件
- Clear WinINET Cookies:清空 IE 和其餘應用中所使用的 WinINET 的 Cookies 文件
- TextWizard:文本嚮導工具,是一個很是好用的能夠輕鬆將 text 文本 encode 和 decode 的小工具
- Compare Sessions:比較會話,能夠在會話列表中選中兩個會話,而後點擊此按鈕,能夠來比較兩個會話,須要先安裝WinDiff或WinMerge
- New Session Clipboard…:打開一個新的會話剪貼板,能夠把會話列表中的會話拖到這個剪貼板中具體來查看
- HOSTS:主機重定向工具。若在其中勾選 Enable 框,而後在下面加入 host 配置,點擊保存以後,這個配置並不會修改到本地 hosts 中,取消勾選就會失效,若點擊 Import Windows Hosts File 將會導入本地的 host 文件內容
- Reset Script:重置腳本
- Sandbox:點擊跳轉到HTTP Sanbox
- View IE Cache:打開本地文件系統,查看IE緩存
- Win8 Loopback Exemptions:Win8 迴環豁免工具,這個時候會彈出一個「AppContainer 迴環豁免實用程序」的窗口,若要將全部的程序使用豁免,點擊「所有免除」,而後點擊「保存更改」
5.Viewide
![](http://static.javashuo.com/static/loading.gif)
- Show Toolbar:顯示工具欄,默認是勾選的
- Default Layout:默認 layout,會話列表在左,請求和響應在右邊的上下處
- Stacked Layout:會話列表在上,請求在下方
- Wide layout:會話列表在上,請求和響應在下方的左右處
- Tabs:打開標籤頁面,其中有三個標籤能夠打開,分別是 Preferences(fiddler 偏好屬性),AutoSave(fiddler 自動保存的設置),APITest(api 的測試)
- Minimize To Tray:最小化托盤
- Stay On Top:保持置頂
- Squish Session List:擠壓會話框
- AutoScroll Session List:自動滾動會話列表,默認是勾選此項的,勾選此項後,會話列表中的每出現新的會話,會話列表就會不斷向下滾動,若不勾選此項,就很方便具體某一個會話的定位,即便出現了新的會話也不會自動向下滾動
- Refresh:刷新功能,按 F5 刷新
6.Help
![](http://static.javashuo.com/static/loading.gif)
- Help:進入 fiddler 的幫助的網頁
- Get Fiddler Book…:fiddler book 的網頁
- Discussions:fiddler 的討論網頁,這個須要魔法上網
- Http Preferences:進入 http preferences 相關網站
- Troubleshoot…:會捕獲全部請求,對於哪些被過濾的請求用刪除線表示出來並給出緣由,使用時候會打開一個網頁
2、工具欄
![](http://static.javashuo.com/static/loading.gif)
1.WinConfig:點擊WinConfig-勾選全部-點擊SaveChanges
![](http://static.javashuo.com/static/loading.gif)
2.給會話增長備註信息
![](http://static.javashuo.com/static/loading.gif)
3.Replay:從新加載當前會話。選中會話-點擊Replay,會在底部顯示從新加載的會話。
4.刪除會話。點擊刪除按鈕會有不一樣的篩選項
5.Stream(流模式):Fiddler的代理模式。默認緩衝模式(全部資源準備好以後再返回),點擊切換流模式(實時返回,更接近瀏覽器的行爲)
6.Decode:解碼
7.Keep:會話列表最多顯示多少條會話
8.Ang Process:捕獲請求,只看須要的請求。將靶心投向須要的請求
![](http://static.javashuo.com/static/loading.gif)
9.find:查找,用顏色標註查找結果
10.Save:保存會話
11.點擊截圖,默認5s後截圖,圖片在會話中顯示
12.計時器,第一次點擊開始計時,第二次點擊返回計時結果,第三次點擊清除結果,從新開始計時,右鍵點擊不計時
13.Browser:啓動瀏覽器,下拉選擇瀏覽器點擊啓動瀏覽器
14.Clear Cache:清除緩存
15.TextWizard:編碼、解碼文本內容
16.Tearoff:浮窗,點擊右邊詳情信息浮窗顯示,關閉浮窗詳情信息位置恢復
17.搜索框
3、會話列表
![](http://static.javashuo.com/static/loading.gif)
1.#:HTTP Request的順序;如下是圖標的解釋:
:請求已經發往服務器
:已從服務器下載響應結果
:請求從斷點處暫停
:響應從斷點處暫停
:請求使用 HTTP 的 HEAD 方法,響應沒有內容(Body)
:請求使用 HTTP 的 POST 方法
:請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議創建鏈接隧道
:響應是 HTML 格式
:響應是圖片
:響應是腳本格式
:響應是 CSS 格式
:響應是 XML 格式
:響應是 JSON 格式
:響應是音頻文件
:響應是視頻文件
:響應是SilverLight
:響應是 FLASH
:響應是字體
:普通響應成功
:響應是 HTTP/300、30一、30二、303 或 307 重定向
:響應是 HTTP/304(無變動):使用緩存文件
:響應須要客戶端證書驗證
:服務端錯誤
:會話被客戶端、Fiddler 或者服務端終止
2.Result:response響應碼
3.Protocol:請求使用的協議(HTTP/HTTPS)
4.Host:請求地址的域名。Tunnel to在受限制的網絡環境(防火牆、NAT、代理)中且使用HTTPS方法時,客戶端使用CONNECT請求代理服務器,代理服務器使用CONNECT方法與目標服務器創建http tunnel,隧道創建後,客戶端與服務器進行通訊,代理服務器就像透明同樣,只是接受、轉發TCP stream。服務器通常只開發SSL的443端口。因此訪問https:www.baidu.com以前出現了tunnel to www.baidu.com:443
5.URL:請求的服務器地址和文件名,也包括GET的參數
6.Body:請求的大小,以byte爲單位
7.Caching:請求的緩存過時時間或緩存控制header等值
8.Content-Type:說明實體主體的媒體類型
9.Process:發出此請求的windows進程及進程ID
10.comments:用戶添加的備註
11.Custom:用戶經過腳本設定的值
12.在會話列表中增長顯示RequestMethod列。在會話列表的首行右鍵單擊--選擇coustomize columns...--選擇RequestMethod--點擊Add添加
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
13.經常使用快捷鍵
- CTRL+A:選中全部的會話
- ESC:取消選中全部的會話
- CTRL+I :反向選中;若是會話已選中,則取消,不然選中
- CTRL+X: 刪除全部的會話,鼠標要在session框中再按鍵
- Delete: 刪除選中的會話
- Shift+Delete :刪除全部未選中的會話
- R :從新執行當前請求
- SHIFT+R :屢次重複執行當前請求
- U:無條件從新執行當前請求,發送不包含If-Modified-Since 和 If-None– Match的請求頭
- SHIFT+U:無條件地屢次重複執行當前請求
- ALT+Enter:查看當前會話的屬性
- Insert:切換是否用紅色粗體標記選中的會話
- M :給選中的會話添加描述
4、詳情和統計界面
![](http://static.javashuo.com/static/loading.gif)
1.Statistics:數據統計面板,性能分析
能夠在會話列表選擇一個或多個會話,查看數據信息。選擇多個會話來得出總的信息數據,可得到加載整個頁面所消耗的時間。從條形圖還能夠得出哪一個請求消耗的時間最多,從而優化頁面的訪問速度。
![](http://static.javashuo.com/static/loading.gif)
2.Inspectors:對抓到的請求進行解包,查看詳細內容。
![](http://static.javashuo.com/static/loading.gif)
3.AutoResponder:容許直接返回本地文件,而不用將request發送到服務器
![](http://static.javashuo.com/static/loading.gif)
把博客園的圖片都換成本身的圖片
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
4.Composer:先後端接口聯調,僞造請求。
![](http://static.javashuo.com/static/loading.gif)
5.Fiddler Orchestra Beta:
官方提供的是Web UI的形式,同時支持遠程調試,好比想抓包遠程計算機的流量,想抓取正常業務的80和443端口流量均可以,其存在http和https反向代理功能,其中Fiddler Orchestra涉及到兩個角色,控制器(Controller)和客戶端(Client),控制器就是咱們正在使用的Fiddler軟件,其功能是用來收集數據和控制任何一個客戶端,而客戶端則是向任何其運行所在的Windows,Linux,Mac主機上收集接收過來的流量將其經過加密的方式報告發送給控制器,控制器會在Fiddler軟件上的會話端顯示。
6.FiddlerScript:Fiddler腳本
7.Log:查看log
8.Filter:過濾。過多的請求信息不利於工做,經過必定的篩選條件過濾不須要的信息。
9.Timeline:直觀地顯示頁面各個元素加載的時間和順序
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 1請求地址簡稱,綠色的表明有條件的請求,不然是黑色
- 2紅色圈圈表明這個鏈接是新建的,綠色表明是複用的,上面的圈表示客戶端到Fiddler的鏈接,下面的圈表示Fiddler到服務器的鏈接。
- 3實心的是流模式的請求,陰影的是緩衝模式的請求,流模式更貼近實際狀況;顏色根據Content-Type來決定,圖片是淺綠色,JavaScript是深綠色,CSS是紫色,其餘是藍色;
- 4Timeline中的黑色豎線,表示的是瀏覽器收到服務端響應的第一個字節這一時刻。這個時間受 DNS 解析、創建鏈接、發送請求、等待服務端響應等步驟的影響,通常用來觀察服務器返回給瀏覽器的數據傳輸效率。若後面有紅色的×,表示服務器響應完這個請求後斷開了鏈接
5、命令行欄
![](http://static.javashuo.com/static/loading.gif)
- help:查看幫助文檔
- ?sometext:匹配Protocol/Host/URL,包含sometext選中高亮顯示
![](http://static.javashuo.com/static/loading.gif)
- >size/<size:大於/小於這個數值的高亮顯示
- =status:例=200,狀態碼是200的高亮顯示
- =method:例=GET,方法是GET的高亮顯示
- @host:匹配host,包含高亮顯示,@www.cnblogs.com
- bold:例 bold png 後面抓到的請求url中包含png的都加粗顯示;只寫bold取消加粗顯示
- bpu:請求斷點;例bpu cnblogs.com;只寫bpu取消請求斷點
- bpafter:返回斷點;例bpafter cnblogs.com;只寫bpafter取消返回斷點
- bps:例bps 200 中斷全部返回狀態碼是200的會話;bps取消斷點
- bpv/bpm:bpv/bpm GET 中斷全部請求方法是的會話;pv/bpm取消斷點
- g/go:放行全部中斷的請求
- cls/clear:清空會話列表
- dump:把全部會話打包成壓縮包dump.saz保存在個人文檔-Fiddler2-Captures文件夾下,而且會清空會話列表
- hide:隱藏Fiddler;可在右下角隱藏圖標中找到
- stop:中止抓取請求
- start:開始抓取請求
- urlreplace:urlreplace baidu cnblogs 把baidu替換成cnblogs;urlreplace取消替換
- select:select image 在會話列表高亮顯示返回的Content-Type是image的會話;select ui-comments 111 高亮顯示會話列表中comments是111的會話;select @request.Host i.cnblogs.com高亮顯示請求頭中Host是i.cnblogs.com的會話
- allbut/keeponly:allbut/keeponly image 只顯示返回的Content-Type是image的會話
- !dns:!dns www.cnblogs.com/!dnslookup www.cnblogs.com 執行dns查找並在右邊的Log欄打印結果
![](http://static.javashuo.com/static/loading.gif)
- !listen:!listen 9999設置監聽端口爲9999;!listen 7777 www.cnblogs.com設置認證爲www.cnblogs.com的監聽端口爲7777
- cols add:cols add @request.Accept在會話列表中增長菜單項
![](http://static.javashuo.com/static/loading.gif)
快捷鍵
- Alt + Q:快速將焦點定位到 QuickExec 命令行
- Ctrl + I:當選擇了一個會話 時候,能夠快速將此會話的url插入到當前命令行光標處
6、狀態欄
![](http://static.javashuo.com/static/loading.gif)
1.capturing表示正在抓取請求;若顯示爲空則表示中止抓取請求;右鍵單擊可切換
2.表示如今顯示全部的進程,可單擊顯示下拉列表,選擇顯示其餘進程。
3.選中會話的條數/會話的總條數
4.狀態提示,在上方命令行欄輸入命令後會有狀態提示