Fiddler簡介
Fiddler是一個(gè)HTTP協(xié)議的代理調(diào)試工具漆魔,他本身是一個(gè)HTTP代理工具硝全,同時(shí)可以查看,中斷或修改通過其的HTTP報(bào)文抄腔,以達(dá)到調(diào)試診斷的目的瓢湃,F(xiàn)iddler要比其他的網(wǎng)絡(luò)調(diào)試器要更加簡單,因?yàn)樗粌H僅暴露HTTP通訊還提供了一個(gè)用戶友好的格式赫蛇。
Fiddler的安裝
Fiddler是基于c#.NET平臺(tái)開發(fā)而成的绵患,有.NET2.0和.NET4.0的兩個(gè)版本,沒有功能呢上的區(qū)別悟耘,目前僅支持Windows系統(tǒng)上的安裝落蝙,需要機(jī)器上提前裝好對應(yīng)的.NET Framework的版本即可,下載地址在http://www.telerik.com/download/fiddler可以找到。
下載完成后直接安裝即可筏勒,安裝過程中沒有需要設(shè)置的項(xiàng)目移迫,安裝完成后可以在應(yīng)用程序中打開Fiddler軟件。
初識(shí)Fiddler
安裝好的Fiddler啟動(dòng)后界面如下管行,在啟動(dòng)時(shí)Fiddler會(huì)自動(dòng)注冊為系統(tǒng)的HTTP代理服務(wù)厨埋,因此所有的系統(tǒng)HTTP請求都會(huì)顯示在Fiddler中,此時(shí)在瀏覽器(如Chrome病瞳,IE)訪問網(wǎng)頁就可以看到Fiddler中有數(shù)據(jù)歡快的跑了起來揽咕。這里順手提一句的是,F(xiàn)iddler在啟動(dòng)時(shí)會(huì)自動(dòng)注冊為系統(tǒng)的HTTP代理服務(wù)套菜,在退出時(shí)會(huì)取消這個(gè)注冊讓系統(tǒng)能夠正常進(jìn)行HTTP訪問,如果Fiddler是由于某些原因異常退出的(比如被進(jìn)程管理器殺死)设易,就不會(huì)出現(xiàn)這個(gè)去注冊的過程逗柴,系統(tǒng)由于找不到代理服務(wù)器就無法正常上網(wǎng)了,這種情況下啟動(dòng)關(guān)閉下Fiddler就好了顿肺。
Fiddler的主界面大概分成了如下的幾個(gè)部分:
- 最上方的菜單欄
- 其下的快捷工具欄
- 主屏幕左邊的Session列表區(qū)
- 主屏幕右邊的Session查看及工具區(qū)
- 屏幕下方的黑條是快捷命令的輸入?yún)^(qū)
- 最下方為狀態(tài)欄
我們會(huì)在之后的幾講中詳細(xì)的介紹每一個(gè)區(qū)域功能的用法戏溺,大家也要跟著節(jié)奏邊學(xué)變練哦
代理機(jī)制簡介
之前一直在講Proxy代理,可能有些同學(xué)對這個(gè)概念還不是特別理解屠尊,在開啟正文之前我們先對這個(gè)概念做一個(gè)簡單的介紹旷祸。
應(yīng)用程序與網(wǎng)絡(luò)的交互如果選擇HTTP協(xié)議,那么基本流程便是向服務(wù)器發(fā)送一個(gè)請求讼昆,等待服務(wù)器返回的響應(yīng)托享,接著又是下一組。代理服務(wù)器的作用相當(dāng)于一個(gè)中轉(zhuǎn)站浸赫,在設(shè)立代理服務(wù)器后HTTP請求不再直接發(fā)往服務(wù)器而是發(fā)往代理服務(wù)器闰围,經(jīng)代理服務(wù)器轉(zhuǎn)發(fā)后發(fā)送給目標(biāo)服務(wù)器,服務(wù)器的返回報(bào)文也不是直接發(fā)送給客戶端既峡,而是經(jīng)代理服務(wù)器的轉(zhuǎn)發(fā)后才發(fā)送給客戶端羡榴。代理服務(wù)器參與后的網(wǎng)絡(luò)結(jié)構(gòu)如下:
那么有同學(xué)就要問了,你這不是畫蛇添足么运敢?好像沒看出來代理服務(wù)器的插入有什么好處啊校仑,且聽我細(xì)細(xì)說來。代理服務(wù)器主要能起到如下的幾個(gè)方面的作用:
- 數(shù)據(jù)緩存:將外網(wǎng)中常訪問的大文件緩存到代理服務(wù)器中传惠,在內(nèi)網(wǎng)用戶請求時(shí)便可以直接返回而節(jié)省時(shí)間和帶寬
- 數(shù)據(jù)監(jiān)控:由于所有的網(wǎng)絡(luò)流量都會(huì)經(jīng)過代理服務(wù)器迄沫,代理服務(wù)器就可以監(jiān)控到內(nèi)外網(wǎng)的相關(guān)數(shù)據(jù)信息,也可以用于地域外部網(wǎng)絡(luò)的攻擊(這個(gè)有點(diǎn)類似于路由器的相關(guān)功能)
- 網(wǎng)絡(luò)隔離:部分公司出于信息安全的角度是隔離的外網(wǎng)的涉枫,那么需要在內(nèi)網(wǎng)訪問外網(wǎng)信息的時(shí)候便可以通過特定的代理服務(wù)器來訪問外網(wǎng)信息
- 隱藏真實(shí)IP:在服務(wù)器看來所有的請求都是來自代理服務(wù)器而不是真實(shí)客戶端邢滑,這樣可以避免真實(shí)客戶端的IP被攻擊的風(fēng)險(xiǎn)
說了這么多,F(xiàn)iddler代理又有什么不一樣呢?Fiddler做為一個(gè)本地代理主要起到的是一個(gè)數(shù)據(jù)監(jiān)控的作用困后,通過可視化UI將通過Fiddler代理的流量展示出來乐纸,并可以針對每一條具體的請求做停止、暫停甚至是篡改其內(nèi)容的操作摇予,以達(dá)到Debug網(wǎng)絡(luò)請求的目的汽绢,隨著教程的深入我們會(huì)手把手的教會(huì)大家一步步的完成這些操作,是不是有些期待了呢侧戴,記得要關(guān)注我們并向你身邊的朋友們推薦哦宁昭。
Fiddler的所能及其所不能
在第一講的最后我們先給大家來說說Fiddler工具的優(yōu)缺點(diǎn)吧,以便大家能夠在第一時(shí)間判斷哪些情況下可以使用Fiddler而哪些情況是Fiddler無能為力的酗宋。
Fiddler之所能
- 查看Web流量及其順序
- 查看每一對Request/Response的Header积仗,Cookies,Cache蜕猫,正文等信息及請求時(shí)間等
- 保存已經(jīng)產(chǎn)生的請求序列用于后續(xù)查看或回放
- 解密HTTPS并查看其內(nèi)容
- 修改Request/Response以滿足特殊的測試或Hack需求
- 通過FiddlerScript和FiddlerExtention可以完成強(qiáng)大的可編程網(wǎng)絡(luò)功能
Fiddler之所不能
- Fiddler只能用于HTTP/HTTPS/FTP請求的debug寂曹,而對那些直接使用TCP協(xié)議,或者使用SMTP, POP3, Telnet, IRC等協(xié)議的數(shù)據(jù)包就無能為例了
- Fiddler只能檢測到通過Fiddler代理的流量
- Fiddler所有的請求都是直接存儲(chǔ)在內(nèi)存中的回右,因此在處理很大的包時(shí)速度會(huì)比較慢
總而言之隆圆,F(xiàn)iddler是一個(gè)非常強(qiáng)力的HTTP協(xié)議調(diào)試工具,無論是用于網(wǎng)頁測試還是客戶端API測試都是一把利器翔烁,掌握好這個(gè)工具一定能讓你在以后的工作中事半功倍渺氧。當(dāng)然由于是和HTTP協(xié)議強(qiáng)相關(guān)的,大家還需要對HTTP協(xié)議有一個(gè)基本的了解蹬屹,推薦大家去看《HTTP權(quán)威指南》啦侣背。