轉載:http://blog.chinaunix.net/uid-27105712-id-3738821.htmlcss
最近在使用fiddler,發現這個真是很是最犀利的web調試工具,筆者這裏強烈推薦給你們;fiddler不論是對開發仍是測試,仍是產品;都是不可多得的工具;開發用來抓包定位問題; 測試用來抓包,回放測試記錄,構造發包用例。產品用來抓包記錄現場。html
在介紹這一利器以前,咱們先瞻仰一下他的做者Eric Eric目前就任於微軟。。fiddler最新版本下載地址http://fiddler2.com/get-fiddler。web
相信不少人遇到和筆者相似的經歷,好不容易找到個破解版本的httpwatch,卻該版本發現其不支持chrome或firefox。或者想要構造發包請求,卻又要換到firefox,由於firefox有比較多得這樣插件。另外想要抓起手機獲取其餘平臺如MAC,目前同類型的工具中,比較少有會對其全面兼容支持。chrome
因此筆者推薦這款fiddler工具,主要看中其三點優點:一、功能強大,其餘工具備的功能它也有,其餘工具沒有的功能它也有,支持http,https,ftp等協議;二、徹底免費,長期免費。三、全部的瀏覽器可使用,全部的平臺均可以使用。就衝着這三點,就值得擁有。windows
Fiddler功能太多,本人也只是在平時工做用用到他的部分功能,也沒有深刻全面的研究,這篇文字只是拋磚引玉,有興趣的能夠全面仔細的研究該工具。本文主要內容介紹工做中經常使用的五個經常使用功能點:瀏覽器
一、 用fiddler 抓http(s)的包,保存,回放。session
二、 使用fiddler配置host架構
三、 查看每次請求的IP。composer
四、 使用fiddler構造請求Post包。函數
五、 使用fiddler的統計功能,觀察server性能;
六、使用fiddler中斷功能,進行調試跟蹤
在介紹fiddler使用方法以前,我想先介紹一下fiddler原理,明白原理後,使用起來會更駕輕就熟。
由上圖能夠看出,Fiddler使用代理方式,讓客戶端全部數據流都發給它,而後有錢轉發給目標server,目標server的回包發給fiddler,再由fiddler轉發給客戶端。因此不論是Request仍是Respone數據包都通過了fiddler,fiddler能進行截獲和分析。正是他這樣架構優點,纔有其其餘工具沒法作到的強大功能,其不光是支持這些IE, Chrome, Safari, and Opera瀏覽器的抓包,還支持一些客戶端的http(s)抓包,前提是這些client支持http代理配置。
先介紹一下Fiddler界面佈局介紹:
一、 抓包,保存,回放
啓動fiddler,不須要對瀏覽器作任何配置,自動開啓了抓包的功能,fiddler狀態欄是開啓開關,值得一提的是fiddler作的比較人性化,啓動時候自動配置瀏覽器的proxy項。在Tools-》WinNet Options這裏能夠查看,也能夠在IE選項裏面查看。fiddler在退出的時候自動關閉
另外咱們通常狀況下不須要看全部的http請求,須要過濾抓到的包:根據須要對url關鍵字或內容關鍵字進行過濾,這裏就須要使用filter配置了
保存或記錄:選擇左側欄的session;而後File-》Save保存,fiddler使用.saz文件擴展名
回放:選擇file –》 load archive;點擊工具欄replay,回放;
二、 使用fiddler配置host
這個功能主要做用就是不須要每次配置hosts都到windows目錄下去修改hosts文件;能夠直接方便在fiddler界面裏面配置便可;方便快速的配置本身的測試host。
三、 查看每次請求的server ip 和端口
咱們知道,每一個域名會對應多個ip,咱們通常不能直接看出此次請求是發到那臺機器上去了,yng每次分配請求ip是dns輪詢的,有時候想要肯定請求是發到哪一個機器上。Fiddler支持腳本開發功能,擴展自定義菜單。這裏使用腳本加上顯示ip的功能。
修改完後,重啓fiddler;抓包,選擇一條session,右鍵選擇Properties,這樣就會打開一個記事本,裏面有X-HOST指示server的IP,以下圖:
若是以爲每次點擊打開一個記事本比較麻煩,還能夠把IP顯示在Session列裏面,按照下面步驟去配置
Step1 :打開菜單Rules-》customize Rules; 打開CustomRules.js;
Step2 :查找」 var m_AlwaysFresh: boolean = false;」這一行;添加這段代碼
如圖
step3:找到OnBeforeResponse函數,添加下面這段代碼
如圖所示
Step4:配置完後,重啓fiddler,打開Rules-》Performance-》show server IP;能夠看到每一個request的ip
四、 使用Fiddler構造Http請求Post包。
開發的時候有時候想測試Post的接口,可是沒法使用瀏覽器測試,由於瀏覽器只能輸入GET請求;因此常常須要本身寫一些代碼或使用firefox一些插件來完成post請求動做;如今有fiddler橫空出世,這一切都再也不是問題。使用composer構造Post請求,點擊execute發送請求,以下圖
五、 使用fiddler統計功能,能統計數據量,按host統計請求數,一個請求從鏈接到收發包,關閉各個階段的時間統計,這些數據對優化網站,分析性能很是有幫助;
六、 使用fiddler調試中斷功能
這個功能能夠在數據包發送以前,修改請求參數;在收到應答包,在js解析和瀏覽器渲染以前,修改返回結果。有了這個功能,開發者就能夠修改不一樣參數測試server,同時也能夠修改返回包測試本身的js函數,或測試頁面渲染。使用者功能要用到fiddler的命令行。由於這個菜單裏面是中斷全部的請求
若是咱們要中斷某個cgi的請求,就使用命令行,命令行的介紹請參考http://fiddler2.com/documentation/KnowledgeBase/QuickExec,譬如咱們要調試CU網站,能夠輸入 bpu www.chinaunix.net. 中斷請求
在querystring裏面修改請求參數, 若是要中斷應答 則使用 bpafter
PS:fiddler最強大的功能仍是其FiddlerScrip功能,這塊尚未作過研究,後續在深刻研究一下。語法請參考http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript