Fiddler簡介
Fiddler是一個HTTP協議的代理調試工具,他本身是一個HTTP代理工具,同時可以查看,中斷或修改通過其的HTTP報文,以達到調試診斷的目的,Fiddler要比其他的網絡調試器要更加簡單,因為它不僅僅暴露HTTP通訊還提供了一個用戶友好的格式。
Fiddler的安裝
Fiddler是基于c#.NET平臺開發而成的,有.NET2.0和.NET4.0的兩個版本,沒有功能呢上的區別,目前僅支持Windows系統上的安裝,需要機器上提前裝好對應的.NET Framework的版本即可,下載地址在http://www.telerik.com/download/fiddler可以找到。
下載完成后直接安裝即可,安裝過程中沒有需要設置的項目,安裝完成后可以在應用程序中打開Fiddler軟件。
初識Fiddler
安裝好的Fiddler啟動后界面如下,在啟動時Fiddler會自動注冊為系統的HTTP代理服務,因此所有的系統HTTP請求都會顯示在Fiddler中,此時在瀏覽器(如Chrome,IE)訪問網頁就可以看到Fiddler中有數據歡快的跑了起來。這里順手提一句的是,Fiddler在啟動時會自動注冊為系統的HTTP代理服務,在退出時會取消這個注冊讓系統能夠正常進行HTTP訪問,如果Fiddler是由于某些原因異常退出的(比如被進程管理器殺死),就不會出現這個去注冊的過程,系統由于找不到代理服務器就無法正常上網了,這種情況下啟動關閉下Fiddler就好了。
Fiddler的主界面大概分成了如下的幾個部分:
- 最上方的菜單欄
- 其下的快捷工具欄
- 主屏幕左邊的Session列表區
- 主屏幕右邊的Session查看及工具區
- 屏幕下方的黑條是快捷命令的輸入區
- 最下方為狀態欄
我們會在之后的幾講中詳細的介紹每一個區域功能的用法,大家也要跟著節奏邊學變練哦
代理機制簡介
之前一直在講Proxy代理,可能有些同學對這個概念還不是特別理解,在開啟正文之前我們先對這個概念做一個簡單的介紹。
應用程序與網絡的交互如果選擇HTTP協議,那么基本流程便是向服務器發送一個請求,等待服務器返回的響應,接著又是下一組。代理服務器的作用相當于一個中轉站,在設立代理服務器后HTTP請求不再直接發往服務器而是發往代理服務器,經代理服務器轉發后發送給目標服務器,服務器的返回報文也不是直接發送給客戶端,而是經代理服務器的轉發后才發送給客戶端。代理服務器參與后的網絡結構如下:
那么有同學就要問了,你這不是畫蛇添足么?好像沒看出來代理服務器的插入有什么好處啊,且聽我細細說來。代理服務器主要能起到如下的幾個方面的作用:
- 數據緩存:將外網中常訪問的大文件緩存到代理服務器中,在內網用戶請求時便可以直接返回而節省時間和帶寬
- 數據監控:由于所有的網絡流量都會經過代理服務器,代理服務器就可以監控到內外網的相關數據信息,也可以用于地域外部網絡的攻擊(這個有點類似于路由器的相關功能)
- 網絡隔離:部分公司出于信息安全的角度是隔離的外網的,那么需要在內網訪問外網信息的時候便可以通過特定的代理服務器來訪問外網信息
- 隱藏真實IP:在服務器看來所有的請求都是來自代理服務器而不是真實客戶端,這樣可以避免真實客戶端的IP被攻擊的風險
說了這么多,Fiddler代理又有什么不一樣呢?Fiddler做為一個本地代理主要起到的是一個數據監控的作用,通過可視化UI將通過Fiddler代理的流量展示出來,并可以針對每一條具體的請求做停止、暫停甚至是篡改其內容的操作,以達到Debug網絡請求的目的,隨著教程的深入我們會手把手的教會大家一步步的完成這些操作,是不是有些期待了呢,記得要關注我們并向你身邊的朋友們推薦哦。
Fiddler的所能及其所不能
在第一講的最后我們先給大家來說說Fiddler工具的優缺點吧,以便大家能夠在第一時間判斷哪些情況下可以使用Fiddler而哪些情況是Fiddler無能為力的。
Fiddler之所能
- 查看Web流量及其順序
- 查看每一對Request/Response的Header,Cookies,Cache,正文等信息及請求時間等
- 保存已經產生的請求序列用于后續查看或回放
- 解密HTTPS并查看其內容
- 修改Request/Response以滿足特殊的測試或Hack需求
- 通過FiddlerScript和FiddlerExtention可以完成強大的可編程網絡功能
Fiddler之所不能
- Fiddler只能用于HTTP/HTTPS/FTP請求的debug,而對那些直接使用TCP協議,或者使用SMTP, POP3, Telnet, IRC等協議的數據包就無能為例了
- Fiddler只能檢測到通過Fiddler代理的流量
- Fiddler所有的請求都是直接存儲在內存中的,因此在處理很大的包時速度會比較慢
總而言之,Fiddler是一個非常強力的HTTP協議調試工具,無論是用于網頁測試還是客戶端API測試都是一把利器,掌握好這個工具一定能讓你在以后的工作中事半功倍。當然由于是和HTTP協議強相關的,大家還需要對HTTP協議有一個基本的了解,推薦大家去看《HTTP權威指南》啦。