Web調試利器fiddler介紹

轉載:http://blog.chinaunix.net/uid-27105712-id-3738821.htmlcss

  最近在使用fiddler,發現這個真是很是最犀利的web調試工具,筆者這裏強烈推薦給你們;fiddler不論是對開發仍是測試,仍是產品;都是不可多得的工具;開發用來抓包定位問題; 測試用來抓包,回放測試記錄,構造發包用例。產品用來抓包記錄現場。html

在介紹這一利器以前,咱們先瞻仰一下他的做者Eric Eric目前就任於微軟。。fiddler最新版本下載地址http://fiddler2.com/get-fiddlerweb

相信不少人遇到和筆者相似的經歷,好不容易找到個破解版本的httpwatch,卻該版本發現其不支持chrome或firefox。或者想要構造發包請求,卻又要換到firefox,由於firefox有比較多得這樣插件。另外想要抓起手機獲取其餘平臺如MAC,目前同類型的工具中,比較少有會對其全面兼容支持。chrome

因此筆者推薦這款fiddler工具,主要看中其三點優點:一、功能強大,其餘工具備的功能它也有,其餘工具沒有的功能它也有,支持http,https,ftp等協議;二、徹底免費,長期免費。三、全部的瀏覽器可使用,全部的平臺均可以使用。就衝着這三點,就值得擁有。windows

Fiddler功能太多,本人也只是在平時工做用用到他的部分功能,也沒有深刻全面的研究,這篇文字只是拋磚引玉,有興趣的能夠全面仔細的研究該工具。本文主要內容介紹工做中經常使用的五個經常使用功能點:瀏覽器

一、 用fiddler 抓http(s)的包,保存,回放。session

二、 使用fiddler配置host架構

三、 查看每次請求的IPcomposer

四、 使用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;」這一行;添加這段代碼      

  1. public static RulesOption("Show Server IP", "Per&formance") 
  2.                  var m_ShowServerIP: boolean = false;

  如圖

 


 step3:找到OnBeforeResponse函數,添加下面這段代碼
 

  1. if (m_ShowServerIP){ 
  2.                 oSession['ui-customcolumn'] += ' ' + oSession.m_hostIP; 
  3.             }

   如圖所示

 

 

  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

相關文章
相關標籤/搜索