原文章鏈接:Web代碼網chinabit.org
Fiddler是一個http調試代理,它能 夠記錄所有的你電腦和互聯網之間的http通訊,Fiddler 可以也可以讓你檢查所有的http通訊,設置斷點,以及Fiddle 所有的“進出”的數據(指cookie,html,js,css等文件,這些都可以讓你胡亂修改的意思,它還可以抓取進程發送的HTTP報文)。 Fiddler 要比其他的網絡調試器要更加簡單,因為它僅僅暴露http通訊還有提供一個用戶友好的格式。
Fiddler工作原理
瀏覽器與服務器之間通過建立TCP連接以HTTP協議進行通信,瀏覽器默認通過自己發送HTTP請求到服務器。 而Fiddler是c#開發(微軟出品,主要作者Eric Lawrence)的http代理服務器,fiddler工作於七層中的應用層,能夠捕獲到通過的http(s)請求。
在安裝了Fiddler的系統中,啟動Fiddler之后會監聽8888端口(默認8888,可以修改)。
我們可以通過監控系統的端口來查看:
1. 在啟動fiddler之前端口8888的狀態
命令:netstat -ano|findstr “8888″
表示查不到占用狀態
2. 啟動fiddler之后:
在啟動fiddelr之后可以發現8888端口被5256線程給監聽
可以查看到5256線程為fiddler程序:
命令:tasklist |findstr “5256″
3.然后啟動Chrome瀏覽器,瀏覽網頁就會發現:
5658進程與fiddler建立了tcp連接,發送端為5658進程占用3258端口,接收端為fiddler(5256)占用的8888端口
命令:netstat -ano|findstr “8888″
查看5568進程,為chrome程序
命令:tasklist |findstr “5568″
同理,打開Firefox瀏覽器,瀏覽網頁也是如此:
7836進程與fiddler建立了tcp連接,發送端為7836進程占用3294端口,接收端為fiddler(5256)占用的8888端口
命令:netstat -ano|findstr “8888″
查看7836進程,為firefox程序:
命令:tasklist |findstr “7836″
ps:要注意的firefox中需要手工將代理設置成fiddler:127.0.0.1:8888,因為Firefox不是使用系統默認的winINET(不過剛親自試驗發現安裝fiddler后,firefox會提示安裝fiddler插件,之后就不需要在手動配置了,如果不能監聽火狐,就手動配置一下吧~)
所以,fiddler作為一個代理服務器,跟瀏覽器建立連接之后,瀏覽器像目標服務器發送的請求都會經過fiddler代理,
所以fiddler可以捕獲到http(s)請求,從而可以解釋、分析、甚至重寫發出去的http(s)請求。
簡單說就是:
瀏覽器 < -> Fiddler < -> 服務器
在平常的調試中,fiddler常用於:
1. 解析請求:如:解析http請求狀態,請求頭,請求正文,返回頭,返回正文等
2. 修改請求,如:設置斷點,則可以修改發出去的請求數據,或者修改請求返回的數據
3.重定向請求,如:替換遠程文件,則可以調試線上的js/css代碼
4.構造請求,如:構造請求發送數據,比如可以用於的測試網站安全性
from:http://blog.csdn.net/gscaiyucheng/article/details/26938019