文章目錄
Fiddler工具介紹一
(原文地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/IE_IntroFiddler.asp)
這個工具我已經使用比較長時間了,對我的協助也挺大,今天我翻譯的微軟的文章,讓更多的朋友都來瞭解這個不錯的工具,也是我第一次翻譯文章,不恰當之處請大家大家多多指正。
介紹:
你是不是曾經疑惑過你的web程式和IE是如何互動的?你是不是遇到過一些奇怪的而你又無法解決的效能瓶頸?你是不是對那些發送給伺服器端的cookie 和那些你下載下來的被標記為可快取的內容感到好奇?
Fiddler官方網站及:http://www.fiddlertool.com/Fiddler/dev/
微軟的Fiddler能夠協助你回答以上的問題,不但如此,它還是一個http調試代理,它能夠記錄所有的你電腦和互連網之間的http通訊,Fiddler 可以也可以讓你檢查所有的http通訊,設定斷點,以及Fiddle 所有的“進出”的資料(指cookie,html,js,css等檔案,這些都可以讓你胡亂修改的意思)。 Fiddler 要比其他的網路調試器要更加簡單,因為它僅僅暴露http通訊還有提供一個方便使用的格式。
Fiddler 包含一個簡單卻功能強大的基於JScript .NET 事件指令碼子系統,他非常靈活性非常棒,可以支援眾多的http調試任務。Fiddler 是用C#寫出來的。
。。。。。接下來是一大段廢話,關於如何安裝的,只要一路next,就可以了。這段話我就跳過,直接切入正題了。
Running Fiddler
當你啟動了Fiddler,程式將會把自己作為一個微軟互連網服務的系統代理程式中去。你可以通過檢查代理設定對話方塊來驗證Fiddler是被正確地截取了web請求。操作是這樣的:點擊IE設定,工具,區域網路設定,最後點擊進階。
作為系統代理程式,所有的來自微軟互連網服務(WinInet)的http請求再到達目標Web伺服器的之前都會經過Fiddle,同樣的,所有的Http響應都會在返回用戶端之前流經Fiddler。這樣,就能明白Fiddler很多作用了吧!
當你關閉Fiddler的時候,它就會自動從系統註冊表中移出,換句話說,當你關閉了Fiddler後,不會佔著茅坑不拉屎。
下面,是一個Fillder的使用者介面,大家可以參考參考其功能。
用Fiddler來做效能測試
HTTP統計視圖
通過顯示所有的Http通訊,Fiddler可以輕鬆的示範哪些用來產生一個頁面,通過統計頁面(就是Fiddler左邊的那個大框)使用者可以很輕鬆的使用多選,來得到一個WEB頁面的“總重量”(分頁檔以及相關js,css等)你也可以很輕鬆得看到你請求的某個頁面,總共請求了多少次,以及多少位元組被轉化了。
另外,通過暴露HTTP頭,使用者可以看見哪些頁面被允許在用戶端或者是代理端進行緩衝。如果要是一個響應沒有包含Cache-Control 頭,那麼他就不會被緩衝在用戶端。
用Fiddler來調試
Fiddler支援斷點調試概念,當你在軟體的菜單—rules—automatic breakpoints選項選擇beforerequest,或者當這些請求或響應屬效能夠跟目標的標準相匹配,Fiddler就能夠暫停Http通訊,情切允許修改請求和響應。這種功能對於安全性測試是非常有用的,當然也可以用來做一般的功能測試,因為所有的代碼路徑都可以用來演習。
Session檢查
使用者可以在BuilderPage項種來以手工的方式來建立一個HTTP請求(即在Fiddler右側的tab的第三個,RequestBUILDER),或者可以使用拖拽操作從Session列表中來移動一個已經存在的請求到builder page 來再次執行這個請求。。。
Fiddler 擴充
Fiddler可以使用 .net framework來對它進行擴充。有2種為Fiddler擴充準備的基本機制:
自訂規則,和規則檢查。
使用指令碼化的規則來擴充Fiddler
Fiddler支援JScript .NET引擎,它可以允許使用者自動地修改Http請求和響應。這個引擎能夠在可視化介面修改在FiddlerUI中的Session,可以從列表中提取你感興趣的錯誤,也可以移除你不感興趣的Session。
以下的範例程式碼示範當cookie被載入的時候把介面變成紫色。
static function OnBeforeRequest(oSession:Fiddler.Session)
{
if (oSession.oRequest.headers.Exists("Cookie")){
oSession["ui-color"] = "purple";
oSession["ui-bold"] = "cookie";
}
}
通過加入Inspectors來擴充Fiddler
使用者可以加入一個Inspector外掛程式對象,來使用.net下的任何語言來編寫Fiddler擴充。RequestInspectors 和 ResponseInspectors提供一個格式規範的,或者是被指定的(使用者自訂)Http請求和響應視圖。
預設安裝中,Fiddler加入了一下的Inspectors:
Request Inspectors
[RW] Headers—Shows request headers and status.
[RW] TextView—Shows the request body in a text box. (原始的請求body視圖)
[RW] HexView—Shows the request body in a hexadecimal view. (body的16進位視圖)
[RO] XML—Shows the request body as an XML DOM in a tree view.(以XML方式展示請求)
Response Inspectors
[RW] Transformer—Removes GZip, DEFLATE, and CHUNKED encodings for easier debugging.
[RW] Headers—Shows response headers and status.
[RW] TextView—Shows the response body in a text box.
[RW] HexView—Shows the response body in a hexadecimal view. (16進位視圖)
[RO] ImageView—Shows the response body as an Image. Supports all .NET image formats.
[RO] XML—Shows the response body as an XML DOM in a tree view.
[RO] Privacy—Explains the P3P statement in the response headers, if present.(如果在回應標頭中有關於隱私權原則的說明就展示出來)
大家如果這篇文章還有點含金量的話,我再接著翻譯第二篇文章,Fiddler的進階篇。