1.2.1 基本概念
fiddler是一款基於windows系統的專用**伺服器軟體。本地執行的程式,如web瀏覽器、office應用程式以及其他客戶端應用,可以把http和https請求傳送給fiddler,fiddler通常把這些請求**給web伺服器。然後,伺服器把這些請求的響應返回給fiddler,fiddler再把這些響應**給客戶端。
幾乎所有使用網路協議的程式都支援**伺服器,因此fiddler幾乎適用於所有應用。當啟動fiddler來捕獲請求和響應時,fiddler會自動註冊為windows internet (wininet)網路服務**,並請求所有應用把請求傳送給它,如圖1-5所示。
圖1-5
有些應用不會自動識別windows網路配置,要想讓fiddler捕獲其資料流,需要手工配置這些應用。也可以對fiddler進行配置,使它能夠支援更罕見的場景,包括伺服器到伺服器(如web services)和裝置到伺服器(如ipad或windows手機)的資料流。預設情況下,fiddler被設計成能夠自動掛接到(chain to)先前已經部署的各種上游**(upstream proxy),通過這種方式,fiddler能夠在已經使用了**伺服器的網路環境中正常工作。
fiddler可以捕獲所有的本地資料流,而且支援很多過濾器(filter)。這一特性使得使用者既可以隱藏不感興趣的資料流,也可以高亮顯示(使用顏色或字型選項)感興趣的資料流。過濾器的過濾條件可以是資料流的**(如特定的客戶端程序),也可以是資料流本身的某些特徵(如該資料流所繫結的主機名或伺服器返回內容的型別)。
fiddler的擴充套件模型功能豐富,既有簡單的fiddlerscript,也包含強大的功能外掛程式(extensions),這些擴充套件可以使用任意一種.net語言來開發。fiddler還支援幾種特殊的擴充套件型別,其中最流行的是inspector(稽查員)。顧名思義,inspector的特點在於支援檢視單個請求或響應。inspector可以做成支援所有響應型別(如hexview inspector),也可以定製為只支援特定型別(如json inspector)。如果你是開發人員,可以通過類庫fiddlercore把fiddler的核心**引擎植入到自己的應用中。
fiddler可以解密https資料流,使用「中間人(man-in-the-middle)」1解密技術來顯示和修改這些在網路上不可讀的請求。要做到沒有安全告警的無縫除錯,可以把fiddler的根證書(root certificate)安裝到系統或web瀏覽器的受信任的證書庫中。
乙個web會話(web session)代表客戶端和伺服器之間的乙個事務。fiddler介面中左側邊欄的web會話列表中的乙個條目就是乙個會話。乙個會話物件包含乙個請求和乙個響應,分別表示客戶端傳送給伺服器的資料以及伺服器返回給客戶端的資料。會話物件還會維護一組標誌位(flag),用於儲存會話的元資料以及在處理該會話過程中記錄的時間戳物件(timer)。
**伺服器並非侷限於檢視網路流量——顧名思義,fiddler這個名字的含義在於它可以「隨意玩弄(fiddle)」傳送出去的請求和接收進來的響應。可以設定請求或響應斷點以手工修改資料流。到達設定的斷點後,fiddler會暫停會話,以便使用者手工修改請求和響應。fiddler還支援在其內部執行指令碼或擴充套件來改寫資料流。預設情況下,fiddler是在緩衝模式(buffering mode)下工作的,即fiddler是接收到伺服器的完整響應之後才將響應的內容返回給客戶端。如果啟用流模式(streaming mode),fiddler會將從伺服器端接收到的響應立即返回給客戶端。因此,流模式下不支援對伺服器的響應進行修改。
fiddler捕獲的會話資訊可以儲存到會話歸檔(session archive zip,saz)檔案中,以方便後續檢視。這種格式的壓縮檔案中包含了完整的請求和響應、標誌位、時間戳物件以及其他元資料。非技術人員可以使用乙個輕量級的捕獲工具fiddlercap來生成saz檔案,再把這些檔案提供給專業人員進行分析。fiddler支援擴充套件元件exporter,它支援把捕獲到的會話以其他工具支援的格式來儲存,從而保證了fiddler和這些工具的互通性。同樣,fiddler也支援擴充套件元件importer,它支援fiddler載入以其他格式儲存的資料流,包括很多瀏覽器開發工具所使用的http archive(har)格式。
1.2.2 使用場景
我最經常遇到的一些問題類似於:「我可以使用fiddler來完成嗎」?fiddler適用於很多場景中。但是,對於一些場景,fiddler是不合適的。絕大多數情況下,人們所使用的是fiddler的少數幾個功能。以下將簡單說明fiddler所適用以及不適用的場景。
fiddler支援功能的不完整列表
fiddler是乙個非常靈活的工具,但某些功能目前還不支援。
除錯非網路協議資料流。
「神奇」地修復**的錯誤(bug)。
好了,完成了fiddler的入門,接下來讓我們一起深入探索它吧!
《Fiddler除錯權威指南》 導讀
前言 fiddler是一種流行的web除錯 它功能強大,介面友好,簡單易用,無論對開發人員或者測試人員來說,都是非常有用的工具。本書是fiddler的開發者eric lawrence編寫的一本權威的參考指南。全書分為10章和4個附錄,從認識fiddler開始,介紹了基本技巧和概念 配置選項 insp...
HTTP權威指南 1 2章)
web客戶端和服務端 可靠地資料傳輸協議 http 各個版本發展歷史 只支援get請求,不支援多 內容發熱mime型別,各種http首部,或者版本號 新增了版本號,各種http首部,一些額外的方法,以及對多 的處理,使得包含生動的web頁面和互動式 成為可能 增加了keep alive連線,虛擬主機...
《HTTP權威指南》筆記摘要Day12
基於dns重定向的演算法 ip mac ip 網元控制協議 重定向伺服器指導客戶端的ip位址 每個分組的第二層位址mac media access control 位址控制 是第二層裝置,通常是交換機和hub 關注的位址。第二層裝置的任務是接收具有特定mac位址的分組,並 到特定的輸出mac位址上去...