Fiddler抓包工具使用詳解


Fiddler抓包工具

一.Fiddler的作用

1.能夠監聽http/https的流量,可以截獲從瀏覽器或者客戶端軟件向服務器發送的http/https請求;
2.對已截獲之后的請求,還能夠查看請求中的內容;
3.能夠方便進行前后端的調試,既能夠偽造客戶端的請求,還能夠與偽造服務器的響應
4.能夠去測試網站的性能
5.解密https的外部會話,因為https本身是一種加密的協議,可以通過fiddler進行解密操作
6.提供第三方的插件使用

二:Fiddler的工作原理

Fiddler相當於一個代理服務器(proxy)
'''兩種代理模式'''
流模式:fiddler會實時把服務器返回給客戶端的數據進行返回。
緩沖模式:fiddler會等待所有的請求都准備好了以后才返回給客戶端

區別:緩沖模式下可以控制最后的服務器響應;而流模式不能控制,更貼近於瀏覽器本身的真實行為

根據具體的情況去選擇
'''使用場景'''
1.開發環境的host配置
2.前后端接口連調,composer
3.定位線上bug,將發布文件代理到本地,快速定位線上bug
4.性能分析和優化,inspectors, timeline

三:界面介紹及使用

第一列:菜單欄
第二列:工具欄
(1)氣泡:備注。添加之后在會話欄的Comment列中顯示備注內容
(2)Replay:回放常用,重播一個會話;快捷鍵:“選中會話+R”
(3)清除會話面板:清除請求,過濾請求×
(4)Go:斷點調試。配合狀態欄上的斷點工具。功能類似於debug
具體步驟:
	1.選中請求
    2.點擊斷點調試
    3.一會之后,選中的會話進入調試狀態
    4.點擊go進行下一步
(5)Stream:代理模式。默認:緩沖模式,可以點擊進行切換
(6)Decode:解壓請求。解壓http請求里面的東西,幫助查看
(7)Keep:指示fiddler的保持會話數目
(8)AnyProcess:捕獲請求,只看需要的請求
(9)Find:查找請求。用顏色標注查找的請求
(10)Save:保存會話
(11)截圖:默認5秒后截圖
(12)計時器:第一次點擊-開始計時;第二次點擊-返回計時結果;第三次點擊,清零,重新計時。使用右鍵點擊將不計時 
(13)Browser:啟動瀏覽器
(14)Clear Cache:清除緩存
(15)TextWizard:編碼解碼文本內容
(16)Tearoff:浮窗
第三列:會話面板和詳情和數據統計面板
'''會話面板'''
Server Ip:需要配置
點擊rules,選擇Customize Rules...
Ctrl+F : 搜索"static function Main()", 添加代碼:
 FiddlerObject.UI.lvSessions.AddBoundColumn("Server IP",120,"X-HostIP"); 
然后重新啟動fiddler即可

'''詳情和數據統計面板'''
(1)Statistics:數據統計面板,性能分析
# 參數詳解:
ClientConnected:客戶端創建連接時間
ClientBeginRequest:客戶端開始請求時間
GotRequestHeaders:獲取請求頭時間
ClientDoneRequest:客戶端完成請求時間
ServerConnected:服務器創建連接時間
FiddlerBeginRequest:Fiddler代理服務器開始請求時間
ServerGotRequest:服務器獲得請求時間
ServerBeginResponse:服務器開始響應時間
GotResponseHeaders:獲取響應頭時間
ServerDoneResponse:服務器完成響應時間
ClientBeginResponse:客戶端開始響應時間
ClientDoneResponse:客戶端完成響應時間

'''分為Modem與DSL兩種傳輸介質評估'''
評估內容為:
RTT:往返時延
該數據體現了一個請求從發送到返回響應的時間,通過選擇多個會話來得到這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化

Elapsed:運行時間

'''提示世界范圍內評估'''
美國西海岸地區
日本/北歐地區
中國地區
(2)Inspectors:對抓到的請求進行解包,查看具體的內容
上邊是:清秋頭
下邊是服務器返回的信息
(3)AutoResponder: 文件代理,例如將一個需要服務端返回的文件,使用本地文件做代理
'''具體步驟'''
	1.在decode中選中要代理的線上的文件
    2.拖拽至右邊
    3.再次點擊選中線上文件+R,進行回放,此時加載的是本地文件
(4)Composer:前后端接口連調,偽造請求。可以實現不寫任何js代碼的情況下實現與服務端的接口調試
'''具體步驟'''
	1.選中請求拖拽
    2.獲取信息,可對內容進行更改,偽造成一個請求,Excute執行
(5)Timeline:性能分析,對選擇多個請求有意義
'''控制面板'''
(1)命令行工具:執行一些快捷操作
常見的命令有:
help 打開官方的使用頁面介紹,所有的命令都會列出來
cls 清屏(ctrl+x也可以清屏)
select 選擇會話的命令
?.png 用來選擇png后綴的圖片
bpu 截獲request

(2)狀態欄:
Capturing:開啟/關閉fiddler的監聽
Web Browsers:股票率會話選擇

四:常用功能

1.AutoResponder:文件替換\線上bug調試
(1)可用於攔截某一請求,並重定向到本地的資源,或者使用Fiddler的內置響應。可用於調試服務器端代碼而無需修改服務器端的代碼和配置,因為攔截和重定向后,實際上訪問的是本地的文件或者得到的是Fiddler的內置響應。 
因此,如果要調試服務器的某個腳本文件,可以將該腳本攔截到本地,在本地修改完腳本之后,再修改服務器端的內容,這可以保證,盡量在真實的環境下去調試,從而最大限度的減少bug發生的可能性。
(2)不僅是單個url,Fiddler支持多種url匹配的方式:
I. 字符匹配 如 example可以匹配 http://www.example.com和http://example.com.cn 
II.完全匹配 以EXACT開頭表示完全匹配,如上邊的例子 EXACT:http://blog.csdn.net/ohmygirl 
III. 正則表達式匹配 
以regex: 開頭,使用正則表達式來匹配URL 
如:regex:(?insx).*.(css|js|php)$ 
表示匹配所有以css,js,php結尾的請求url
(3)操作——模擬 
2.Composer:前后端接口連調
選中一個接口——>拖拽到Composer面板; 
'''准備工作:''' 
接口請求方式、請求參數; 
Get請求:參數直接寫在接口里面
Post請求:參數寫在Request Body里面
3.FiddlerScript: 網絡限速,測試在不同網絡下的請求運行狀況
將請求代碼話
為使用方便不去編寫c#代碼,可以去使用圖形化插件

手機端監聽參考網址
'''
https://blog.csdn.net/yue549433330/article/details/82745760
'''

五:web session的常用快捷鍵

CTRL+A: 選中所有的session;
ESC: 取消選中所有的session;
CTRL+I 反向選中;如果session已選中,則取消,否則選中;
CTRL+X 刪除所有的session;
Delete: 刪除選中的session;
Shift+Delete 刪除所有未選中的session;
R 重新執行當前請求;
SHIFT+R 多次重復執行當前請求
U: 無條件重新執行當前請求,發送不包含If-Modified-Since 和 If-None– Match的請求頭;
SHIFT+U 無條件地多次重復執行當前請求;
ALT+Enter 查看當前session的屬性;
Insert:切換是否用紅色粗體標記選中的session;
M 給選中的session添加描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM