Fiddler的使用詳解


 

視圖功能區域

會話的概念:一次請求和一次響應就是一個會話。

fiddler主界面

 

下面挑幾個快捷功能區中常用幾項解釋,其他功能自己嘗試:

快捷功能區
1:給會話添加備注信息 2:重新加載當前會話 3:刪除會話選項 4:放行,和斷點對應,后面詳細講解 5:響應模式。也即是,當Fiddler拿到遠程的response后是緩存起來一次響應給客戶端還是以stream的方式直接響應。 6:解碼。有些請求是被編碼的,點擊這個按鈕后可以根據響應的編碼格式自動解碼。 7:查找會話。 8:保存會話。 9:截屏。截屏后,會以會話的方式返回一個截圖。 
接着來看看會話列表

 

#欄圖標說明

快捷鍵

刪除一條會話,可以在選中會話后,按del刪除,如若要清空列表,可以用Ctrl+X

左鍵點擊單條HTTP請求,可以在右側的tab面板中看到如下信息:

1. Statistic。

關於HTTP請求的性能和其他數據分析:

 

我們可以從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,建立TCP/IP連接的時間消耗是8ms等等信息。

2. Inspectors

提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息,分為上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。對於每一部分,提供了多種不同格式查看每個請求和響應的內容。

a、ImageView標簽 

JPG 格式使用 ImageView 就可以看到圖片,選擇一條Content-Type是image/jpeg的回話,點擊TextView

 

b、TextView 標簽

HTML/JS/CSS 使用 TextView 可以看到響應的內容。選擇一條Content-Type是text/html的回話,點擊TextView

 

c、Raw標簽

Raw標簽可以查看響應報文和響應正文,但是不包含請求報文

d、Auth標簽

Auth則可以查看授權Proxy-Authorization 和 Authorization的相關信息

e、Cookies標簽

Cookies標簽可以看到請求的cookie和響應的set-cookie頭信息。

3.AutoResponder標簽

Fiddler 的AutoResponder tab允許你從本地返回文件,而不用將http request 發送到服務器上。

下邊直接說他的使用方式把:

使用的是手機上邊的百度手機助手的棋牌游戲界面。

1、首先看圖 (我們來重定向第一個歡樂斗地主這個圖片)

2、打開Fiddler,然后點擊棋牌游戲進入上邊這個界面,就能發現會請求當前顯示的這五張圖片

 這個時候我們切換到AutoResponder這個界面,點擊鼠標左鍵,把要重定向的這個session會話拖動到AutoResponder界面中

選擇了我們要返回的圖片以后,然后點擊save。

然后關掉應該,清楚應用緩存,然后在打開,點擊棋牌游戲,可以看到

這是實現了替換其中一個,也許你會說,是不是本來就是那樣啊,那么在介紹一個根據別的規則來進行重定向。

 

我們通過重定向向,把所有的百度手機助手中的圖片都替換成剛才的小頭像。

 

前便的操作時一樣的,拖過來以后我們可以點擊Save前邊的倒的小三角,然后就可以看到,里邊有很多規則,現在我們選擇

第一個:這是一個正則表達式。

然后在選擇剛才的那個頭像圖片,然后save。

清除緩存,重新打開,可以看下圖:

可以看到,所有的jpg格式的都變成了我們的頭像了。

關於重定向還有很多,剩下的就需要自己慢慢研究了。

小結:AutoResponder功能是Fiddler最實用的功能之一,Rule可以自由地設定,可以使用搜索(默認)、精確匹配(EXACT)、正則表達式匹配(REGEX)。處理方式可以選擇使用文件,也可以選擇合適的時間暫停數據流(*bpu、*bpafter),人工干預。通過以上幾個步驟,我們演示了怎樣將HTTP請求重定向到本地的文件,進行調試,這在我們診斷跟蹤一些js文件但卻不能修改js文件時非常有用。比 如:在用瀏覽器測試P頁面時,P頁面引入了一個js資源文件R.js,由於R.js文件在服務器S上,而我此時又不能登錄S服務器(沒有S服務器的帳 號),此時我們就可以通過瀏覽器將R.js文件下載到本地,然后對本地的R.js文件進行調整,最后通過設置Fiddler,將R.js文件的請求使用本 地的R.js文件。

4.Composer 自定義請求發送服務器

Composer允許自定義請求發送到服務器,可以手動創建一個新的請求,也可以在會話表中,拖拽一個現有的請求

Parsed模式下你只需要提供簡單的URLS地址即可(如下圖,也可以在RequestBody定制一些屬性,如模擬瀏覽器User-Agent)

 

5.斷點請求/響應

 

如圖,箭頭所指的位置時可以點擊的。共三種狀態:
空白:不設置斷點。
箭頭向上:表示斷點請求。此時客戶端的請求是無法直接到達目標服務器的,需要手動控制。
箭頭向下:表示斷點響應。此時目標服務器的響應是無法直接到達客戶端的,需要手動控制。

還有一種打斷點的方式

在命令行中輸入命令: 

bpu www.baidu.com  (斷點請求)

bpuafter www.baidu.com(斷點響應)

這種方法只會中斷www.baidu.com

斷點請求並修改

如圖,操作步驟:

  1. 設置斷點請求,訪問網頁
  2. 點擊對應的會話
  3. 查看請求報文信息
  4. 修改請求內容
  5. 完成斷點,放行,把該請求發送給目標服務器。

圖中Break On Response表示把請求發給服務器,但是服務器的響應被fiddler攔截,此時可以修改響應內容(和斷點響應類似)。

斷點響應並修改

和斷點請求操作類似,只是在響應區域修改報文信息即可。
在斷點響應時,請注意超時時間。

6.過濾域名

Fiddler抓包可以完成我們移動開發者的調試測試需求。但是多余的網頁請求和手機的其他鏈接影響我們手機開發的需求。所以我們需要排除其他無用的包,只關注我們指定的域名的請求包。

打開fiddler,找到Filters選項並點擊打開。如圖所示

默認情況下,這個頁面是灰色的,代表默認不過濾任何請求。現在我們勾選 Use Filters 。

一般常用的有三種過濾條件:

1.域名過濾,只顯示特定域名的記錄:

*.baidu.com表示所有的百度二級域名會話;*baidu.com表示一級域名+二級域名的會話。設置好了后一定要點擊Actions生效;

2.類型過濾,一般對各種圖片、CSS、JS這類的靜態素材也不需要看的情況下,直接全部過濾掉

 .*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff) 

需要過濾多少自己直接加入就好了

3.根據返回狀態碼,比如只想顯示200的狀態,其他的不顯示

Fiddler 的內置命令

?

問號(?)后邊跟一個字符串,Fiddler 將所有會話中存在該字符串匹配的全部高亮顯示(下圖輸入的是 ?google.com)

溫馨提示:匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串。

> 和 <

大於號(>)和小於號(<)后邊跟一個數值,表示高亮所有尺寸大於或小於該數值的會話。

比如我輸入 >5000,按下回車后結果如下:

溫馨提示:你可以直接輸入 >5k 表示你想高亮所有尺寸大於 5KB 的會話。

=

等於號(=)后邊可以接 HTTP 狀態碼或 HTTP 方法,比如 =200 表示高亮所有正常響應的會話。

下圖輸入了 =POST,表示希望高亮所有 POST 方法的會話:

@

@ 后邊跟的是 Host,比如我想高亮所有魚C論壇的連接,我可以 @bbs.fishc.com

溫馨提示:下邊 bpafter、bps、bpv、bpm 和 bpu 用於設置斷點。

會話被中斷下來之后,點擊頁面上方的 Go 按鈕放行當前中斷下來的會話,但新的匹配內容還是會被斷下來,輸入命令但不帶參數表示取消之前設置的斷點。

bpafter

bpafter 后邊跟一個字符串,表示中斷所有包含該字符串的會話。

比如我想中斷所有包含 fishc 的響應,那么我輸入 bpafter fishc,然后在瀏覽器輸入 bbs.fishc.com,發現並沒有收到服務器響應,因此都給 Fiddler 斷下來了:

bps

bps 后邊跟的是 HTTP 狀態碼,表示中斷所有為該狀態碼的會話。

bpv 或 bpm

bpv 或 bpm 后邊跟的是 HTTP 方法,表示中斷所有為該方法的會話。

bpu

跟 bpafter 類似,區別:bpu 是在發起請求時中斷,而 bpafter 是在收到響應后中斷。

cls 或 clear

清除當前的所有會話。

dump

將所有的會話打包成 .zip 壓縮包的形式保存到 C 盤根目錄下。

g 或 go

放行所有中斷下來的會話。

hide

將 Fiddler 隱藏。

show

將 Fiddler 恢復。

urlreplace

urlreplace 后邊跟兩個字符串,表示替換 URL 中的字符串。比如 urlreplace baidu fishc 表示將所有 URL 的 baidu 替換成 fishc。

溫馨提示:直接輸入 urlreplace 不帶任何參數表示恢復原來的樣子。

start

Fiddler 開始工作。

stop

Fiddler 停止工作。

quit

關閉 Fiddler。

select

select 后邊跟響應的類型(Content-Type),表示選中所有匹配的會話。

比如希望 Fiddler 選中所有的圖片,可以使用 select image;

而 select css 則選中所有的 css 文件;

當然,select htm 就是選中所有的 html 文件啦~

allbut 或 keeponly

跟 select 類似,不過 allbut 和 keeponly 會將所有無關的會話刪除。

比如我只想看圖片,那么我可以 keeponly image,表示將所有與圖片無關的會話刪除:

!dns

后邊跟一個域名,執行 DNS 查找並在右邊的 LOG 欄打印結果:

!listen

設置其他監聽的端口,默認是 8888。。

 

轉自:https://www.cnblogs.com/woaixuexi9999/p/9247705.html


免責聲明!

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



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