一、Statistics 頁籤
完整頁籤如下圖:
Statistics 頁籤顯示當前用戶選擇的 Sessions 的彙總信息,包括:選擇的 Sessions 總數、發送字節數、接收字節數、響應類型的彙總表、世界各地通過不同請求方式所需的時間等。
Statistics 頁籤底部圖表
Show Chart 可以將彙總結果顯示爲一個餅狀圖,按照響應類型,在餅圖中顯示不同的比例和不同的色塊,見上圖。
Copy this chart 可以將該餅圖複製到剪貼板,粘貼到圖形處理軟件或者 WORD 中。
Collapse Chart 收起餅圖展示。
二、Inspectors 頁籤
完整頁籤如下圖:
Inspectors 頁籤允許你用多種不同格式查看每個請求和響應的內容。JPG 格式使用 ImageView 就可以看到圖片,HTML/JS/CSS 使用 TextView 可以看到響應的內容。
Inspectors 頁籤分爲上下兩部分,上部顯示的是發出的請求相關信息,下部顯示的是接收的響應相關信息。
請求 (Request) 部分詳解
- Headers —— 顯示客戶端發送到服務器的 HTTP 請求的 header,顯示爲一個分級視圖,包含了 Web 客戶端信息、Cookie、傳輸狀態等
- Textview —— 顯示 POST 請求的 body 部分爲文本
- WebForms —— 顯示請求的 GET 參數 和 POST body 內容,特別說明,這裏 body 應該是 application/x-www-form-urlen-coded 格式
- HexView —— 用十六進制數據顯示請求
- Auth —— 顯示 header 中的 Proxy-Authorization 和 Authorization 信息
- Raw —— 將整個請求顯示爲純文本
- XML —— 如果請求的 body 是 XML 格式,就是用分級的 XML 樹來顯示它
響應 (Response) 部分詳解
- Transformer —— 顯示響應的編碼信息
頂部的黃色提示文字表示,此請求爲了提高性能,而做了編碼或者壓縮(例如 GZIP),需要轉換後才能在 TextView 里正常瀏覽。點擊該區域或者下面的 Remove HTTP Chunked Encoding 按鈕,都能執行轉換或者解壓縮。如果該請求沒編碼/壓縮是看不見此提示的。
HTTP Compression 顯示當前請求使用的編碼方式
- No Compression —— 無壓縮
- GZIP Encoding —— GZIP 壓縮
- DEFLATE Encoding —— DEFLATE 壓縮
- BZIP2 Encoding —— BZIP2 壓縮
對未編碼壓縮的請求,可以選擇不同的模式,看 Entity Size 裏顯示壓縮後有多大。從而根據這個決定是否需要採用這樣的壓縮技術來提升網站的性能。
- Headers —— 用分級視圖顯示響應的 header
- TextView —— 使用文本顯示相應的 body
- ImageVies —— 如果請求是圖片資源,顯示響應的圖片。
左側灰色區域會顯示圖片的大小、寬高、文件格式等信息,在下方還可以選擇縮放模式:自動縮放、縮放以適應顯示區域大小、無縮放
- HexView —— 用十六進制數據顯示響應
- WebView —— 響應在 Web 瀏覽器中的預覽效果
- Auth —— 顯示響應 header 中的 Proxy-Authorization 和 Authorization 信息
- Caching —— 顯示此請求的緩存信息
- Privacy —— 顯示此請求的私密 (P3P) 信息
- Raw —— 將整個響應顯示爲純文本
- XML —— 如果響應的 body 是 XML 格式,就是用分級的 XML 樹來顯示它
三、AutoResponder 頁籤
完整頁籤如下圖:
此功能啓用後,可以將某一請求的響應結果替換成指定的資源,可以是本地文件,也可以是 Fiddler 內置的各種 HTTP 響應。主要用於臨時攔截某一請求的響應,而無需修改服務器上的環境和代碼,保證在最真實的環境中進行調試,也無需在 BUG 查找的時候就尋求相關部門的配合。
· 啓用該功能,請將 Enable automatic responses 打勾。
· Permit passthrough for unmatched requests 表示允許未匹配到的請求正常響應。應該打勾才能讓其他的請求繼續;否則其他未匹配到的請求都會以 404 狀態返回。
· 頁籤中間是一個列表,顯示當前創建的匹配規則,左側是匹配的條件,右側是響應的結果。即:如果請求的地址包含左側的字符串,那麼就用右邊設定的資源來替換來自服務器的響應。用 + 和 - 兩個按鍵可以調整當前選擇規則在列表中的位置。
· 頁籤底部是一個規則編輯器,可以進行編輯當前用戶選擇的匹配規則、保存編輯、刪除此匹配規則等操作。
第一個 Combox 是匹配的條件,可以自行輸入字符串,也可以選擇 Fiddler 內置的三個正則(都是匹配圖片的,沒什麼用)。Fiddler 支持幾種匹配模式:
- String Literals —— 字符匹配
這種模式將匹配指定的字符串,不存在大小寫敏感。範例:
*
通配符,匹配任何地址,如: http://www.example.com/Path1/query=example
EXAMPLE
匹配 http://www.example.com/Path1/query=example
path1/
匹配 http://www.example.com/Path1/query=example
query
匹配 http://www.example.com/Path1/q=Query - Exact Match —— 精確匹配
這種模式一 EXACT: 開頭,將嚴格匹配字符串,包括大小寫。範例:
EXACT:http://www.example.com/path
匹配 http://www.example.com/path
不匹配 http://www.example.com/Path(大小寫不符)
不匹配 http://www.example.com/path/q=Query(有多餘字符串) - Regular Expressions —— 正則表達式
這種模式一 regex: 開頭,使用正則表達式來匹配 session 的 URL。範例:
regex:.*
通配符,匹配任何地址,如 http://www.example.com/Path1/query=example
regex:.*\.jpg —— 匹配包含 .JPG 的 URL
匹配 http://www.example.com/Path1/query=foo.jpg&bar
匹配 http://www.example.com/Path1/query=example.jpg
regex:.*\.jpg$ —— 匹配 .jpg 結束的 URL
不匹配 http://www.example.com/Path1/query=foo.jpg&bar(不是 .jpg 結尾)
匹配 http://www.example.com/Path1/query=example.jpg
regex:.*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 結束的 URL
不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 結尾)
匹配 http://www.example.com/Path1/query=example.gif
不匹配 http://www.example.com/Path1/query=example.Gif (是 .gif 結尾,但大小寫不匹配)
匹配 http://www.example.com/Path1/query=example.bmp
regex:(?insx).*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 結束的 URL,忽略大小寫
不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 結尾)
匹配 http://www.example.com/Path1/query=example.gif
匹配 http://www.example.com/Path1/query=example.Gif
匹配 http://www.example.com/Path1/query=example.bmp
最後一個正則中的 ?insx 是正則表達式的語法,其中各字母的含義如下(詳見:正則表達式選項):
- i —— 指定不區分大小寫的匹配
- m —— 指定多行模式。更改 ^ 和 $ 的含義,以使它們分別與任何行的開頭和結尾匹配,而不只是與整個字符串的開頭和結尾匹配。
- n —— 指定唯一有效的捕獲是顯式命名或編號的 (?<name>…) 形式的組。這允許圓括號充當非捕獲組,從而避免了由 (?:…) 導致的語法上的笨拙。
- s —— 指定單行模式。更改句點字符 (.) 的含義,以使它與每個字符(而不是除 \n 之外的所有字符)匹配。
- x —— 指定從模式中排除非轉義空白並啓用數字符號 (#) 後面的註釋。(有關轉義空白字符的列表,請參見字符轉義。)請注意,空白永遠不會從字符類中消除。
第二個 Combox 是響應的結果,可以選擇:Fiddler 內置的 HTTP 200/204/302/303/304/307/401/403/404/407/502 等各種響應範例、*bpu 和 *bpafter( 表示在此中斷,關於 bpu 和 bpfater 見 QuickExec 命令參考)、本地文件 (Find a file...)。
Save 按鈕是保存對此匹配規則的修改,Remove 按鈕是刪除此匹配規則。
增加匹配規則
1.點擊 Add... 按鈕,新增一條規則。
此時會激活頁籤底部的 Rule Editor。如果你在 Web Sessions 面板裏選擇了一個 Session,則匹配規則是該 Session 的 URL,否則是 StringtoMatch[數字]。然後可以使用 Rule Editor 編輯它。
2.點擊 Import... 按鈕,導入在 Web Sessions 中保存下來的壓縮包 (*.saz)。
3.在 Web Sessions 面板中選擇你要捕獲的請求,直接拖拽到 AutoResponder 的列表中
四、Filters 頁籤
Fiddler 的過濾器功能相當的強大,見下圖:
下面我們一一加以說明:
- HOST —— HOST 過濾規則
你可以在文本框中輸入多個 HOST,多個之前用半角逗號或者回車分隔。
- - No Host Filter - —— 無 HOST 過濾
- Hide the following Hosts —— 隱藏如下 HOST
- Show only the following Hosts —— 只顯示如下 HOST
- Flag the following Hosts —— 加粗顯示如下 HOST
- Show only traffic from —— 你可以指定只捕獲哪個 Windows 進程中的請求,右側會列出當前所有的 Windows 進程
- Show only Internet Explorer traffic —— 只顯示 IE 發出的請求
- Hide Windows RSS platform traffic —— 隱藏 Windows RSS 平臺發出的請求
- Break request on HTTP POST —— 給所有 POST 請求設置斷點
- Break request on HTTP GET with QueryString —— 給所有帶參數的 GET 請求設置斷點
- Break response on Content-Type —— 給特定的 Content-Type 設定斷點
- Hide success(202,204,206) —— 隱藏響應成功的 session (202,204,206)
- Hide Authentication demands(401) —— 隱藏未經授權被拒絕的 session (401)
- Hide redirects(300,301,302,303,307) —— 隱藏重定向的 session (300,301,302,303,307)
- Hide Not Modified(304) —— 隱藏無變更的 session (304)
- 設定響應類型過濾規則
· Show all Content-Types —— 顯示所有響應類型
· Show only IMAGE/* —— 只顯示圖片
· Show only HTML —— 只顯示 HTML
· Show only TEXT/CSS —— 只顯示 CSS
· Show only SCRIPTS —— 只顯示腳本
· Hide IMAGE/* —— 隱藏所有圖片
- Ignore smaller than ? KB —— 忽略小於指定大小的 session
- Ignore larger than ? KB —— 忽略大於指定大小的 session
- Block script files —— 阻止腳本文件,顯示爲 404
- Block image files —— 阻止圖片文件
- Block SWF files —— 阻止 SWF 文件
- Block CSS files —— 阻止 CSS 文件
- Flag requests with header —— 標記帶有特定 header 的請求
- Delete request header —— 刪除請求 header
- Set request header —— 設置請求的 header
- Flag responses that set cookies —— 標記會設置 cookie 的響應
- Flag responses with header —— 標記帶有特定 header 的響應
- Delete responses header —— 刪除響應 header
- Set responses header —— 設置響應的 header
- Keep only the most recent ? sessions. —— 只保留最新的指定數量的 session
五、Timeline 頁籤
完整頁籤如下圖:
此列表顯示在 Web Sessions 面板中選擇的 session 請求到響應的時間表。橫向是時間軸,以秒爲單位;縱向是選擇的 session 列表。
鼠標移到 Timeline 頁籤的某一 session 上,在 Timeline 頁籤底部會顯示四個數據:
· Session 編號和 URL
· Session 的響應類型
· 發送的字節數
· 接收的字節數
六、QuickExec 命令行
QuickExec 命令行如下圖:
QuickExec 命令行允許你快速執行腳本命令,在 Fiddler 中使用快捷鍵 Alt + Q 可以快速將焦點設置到命令行。
如果當前在 Web Sessions 面板選擇了一個 Session,可以使用快捷鍵 Ctrl + I 快速將 Session URL 直接插入到命令行當前光標處。
默認命令參考
以下列表中的命令只能確保在最新版本的 Fiddler 中才生效。
多數命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能沒有最新的命令。如果要得到最新的命令,要麼刪除你的 CustomRules.js,要麼複製 SampleRules.js 的 ExecAction 到 CustomRules.js 中。
-
- ?sometext
Fiddler 會高亮所有 URL 匹配問號後的字符的全部 session。按回車聚焦到匹配的 session 上。
範例:
?searchtext
- >size
選擇響應尺寸大於指定大小的全部 session。按回車聚焦到匹配的 session 上。
範例:
>40000 (選擇響應大於 40kb 的請求)
- <size
選擇響應尺寸大於指定大小的全部 session。按回車聚焦到匹配的 session 上。
範例:
<5k (選擇響應小於 5kb 的請求)
- =status
選擇響應 HTTP 狀態等於指定值的全部 session。按回車聚焦到匹配的 session 上。
範例:
=301 (選擇 301 重定向的請求)
- @host
選擇包含指定 HOST 的全部 session。按回車聚焦到匹配的 session 上。
範例:
@msn.com (選擇 www.msn.com、login.msn.com 等 session)
- bold sometext
加粗顯示 URL 包含指定字符的全部 session。
範例:
bold test.php (加粗顯示 URL 中包含 test.php 的 Session
bold (不帶參數表示清空所有加粗顯示的 Session) - bpafter sometext
中斷 URL 包含指定字符的全部 session 響應。
範例:
bpafter test.php (中斷 URL 中包含 test.php 的 Session
bpafter (不帶參數表示清空所有設置斷點的 Session) - bps
中斷 HTTP 響應狀態爲指定字符的全部 session 響應。
範例:
bps 404 (中斷所有響應 404 的 Session
bps (不帶參數表示清空所有設置斷點的 Session) - bpv 或 bpm
中斷指定請求方式的全部 session 響應。
範例:
bpv POST (中斷所有 POST 請求的 Session
bpv (不帶參數表示清空所有設置斷點的 Session) - bpu
中斷請求 URL 中包含指定字符的全部 session 響應。
範例:
bpu test.php (中斷所有請求 URL 中包含指定字符的 Session
bpu (不帶參數表示清空所有設置斷點的 Session) - cls 或 clear
清除所有 session
範例:
cls
- dump
將所有 session 打包到 C 盤根目錄下的一個 zip 壓縮包中
範例:
dump
- g 或 go
繼續所有中斷的 Session
範例:
g
- help
用 IE 打開 QuickExec 在線幫助頁
範例:
help
- hide
將 Fiddler 隱藏到任務欄圖標中
範例:
hide
- urlreplace
將 URL 中的字符串替換成特定的字符串
範例:
urlreplace SeekStr ReplaceWithStr
urlreplace (不帶參數表示清空所有之前的設置) - start
將 Fiddler 爲系統代理
範例:
start
- stop
將 Fiddler 從系統代理註銷
範例:
stop
- show
將 Fiddler 從任務欄圖標恢復爲圖形界面,此命令在命令行工具 ExecAction.exe 中使用
範例:
show
- slect
選擇響應類型 (Content-Type) 爲指定字符的所有 session
範例:
slect image
slect css
select htm - allbut 或 keeponly
選擇響應類型 (Content-Type) 不是指定字符的所有 session
範例:
allbut xml
allbut java - quit
退出 Fiddler
範例:
quit
- ?sometext
七、Fiddler2 選項
Fiddler2 選項對話框,共有五個選項卡:
General —— 常規
此選項卡顯示 Fiddler 的常規設置:
Check for updates on startup —— 程序啓動時查找更新
Reuse connections to servers(improved performance) —— 重用到服務器的連接(提高性能)
Reuse client connections(improved performance) —— 重用客戶端的連接(提高性能)
Show a message when HTTP protocol violations encountered —— 違背 HTTP 協議的時候顯示消息提示
Allow remote computers to connect —— 允許遠程電腦連接
Enable IPv6(if available) —— 啓用 IPv6(如果可用)
Map socket to originating application —— 映射 socket 連接到原程序
Encrypt use AES256 when saving password-protected SAZ files(slow) —— 保存受密碼保護的 session 到 SAZ(Session Archive ZIP) 文件時候使用 AES256 算法加密(很慢)
Automatically stream audio & video —— 音頻和視頻自動使用流模式
Fiddler 的 Windows 全局熱鍵 —— 默認是 Ctrl + Alt + F,你可以設置成 Win + 任意鍵、Ctrl + Alt + 任意鍵、Ctrl + Shift + 任意鍵的組合
HTTPS —— HTTPS 設置
此選項卡顯示 Fiddler 的 HTTPS 設置:
Capture HTTPS CONNECTs —— 捕獲 HTTPS 連接
Decrypt HTTPS traffic —— HTTPS 請求解密
Ignore server certficate errors —— 忽略服務器端驗證錯誤
Show data from RPASpy —— 顯示來自 RPASpy 的數據(RPASpy 是 Fiddler 1.3 中用於查看 HTTPS 請求和響應 header 的插件,Fiddler2 已經集成了 RPASpy)
Extensions —— 擴展
此選項卡顯示 Fiddler 的擴展設置:
Automatically reload script when changed —— 腳本發生變化時自動重載
Editor —— 腳本的編輯器
References —— 擴展所連接到的 dll 文件
Extensions —— 已經安裝的擴展列表
Find more extensions... —— Fiddler 在線擴展列表頁
Connections —— 連接
任何一款可以設置 HTTP 代理的軟件都可以使用 Fiddler。請先確保主菜單 File -> Capture Traffic 功能開啓了。此選項卡顯示 Fiddler 的連接設置:
Act as system proxy on startup —— 腳本發生變化時自動重載
Chain to upstream gateway proxy —— 鏈到上行數據流網關代理
Show Gateway Info —— 顯示上行數據流網關設置信息
Fiddler listens on port: —— Fiddler 監聽的端口
Copy Browser Proxy Configuration URL —— 複製 Fiddler 本地代理配置文件 URL
IE showld bypass Fiddler for URLs that start with: —— 如果 URL 地址以下列地址開頭,IE 會繞過 Fiddler
WinINET Connections —— WinINET 連接
Monitor all connections —— 監聽所有連接
連接列表
Appearance —— 外觀
此選項卡顯示 Fiddler 的外觀設置:
Font size —— Web Sessions 面板字號選擇,單位:磅
Hide Fiddler when minimized —— 最小化時隱藏 Fiddler
Use SmartScroll in Session List —— Session 列表使用智能滾動
Reset Session ID counter on Ctrl + X —— 按下 Ctrl + X 的時候自動重算 session ID
Show Fiddler Toolbar —— 顯示 Fiddler 工具欄
八、字段說明
Fiddler想要抓到數據包,要確保Capture Traffic是開啓,在File –> Capture Traffic。開啓後再左下角會有顯示,當然也可以直接點擊左下角的圖標來關閉/開啓抓包功能。
Fiddler開始工作了,抓到的數據包就會顯示在列表裏面,下面總結了這些都是什麼意思:
名稱 |
含義 |
# |
抓取HTTP Request的順序,從1開始,以此遞增 |
Result |
HTTP狀態碼 |
Protocol |
請求使用的協議,如HTTP/HTTPS/FTP等 |
Host |
請求地址的主機名 |
URL |
請求資源的位置 |
Body |
該請求的大小 |
Caching |
請求的緩存過期時間或者緩存控制值 |
Content-Type |
請求響應的類型 |
Process |
發送此請求的進程:進程ID |
Comments |
允許用戶爲此回話添加備註 |
Custom |
允許用戶設置自定義值 |
圖標 |
含義 |
請求已經發往服務器 |
|
已從服務器下載響應結果 |
|
請求從斷點處暫停 |
|
響應從斷點處暫停 |
|
請求使用 HTTP 的 HEAD 方法,即響應沒有內容(Body) |
|
請求使用 HTTP 的 POST 方法 |
|
請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議建立連接隧道 |
|
響應是 HTML 格式 |
|
響應是一張圖片 |
|
響應是腳本格式 |
|
響應是 CSS 格式 |
|
響應是 XML 格式 |
|
響應是 JSON 格式 |
|
響應是一個音頻文件 |
|
響應是一個視頻文件 |
|
響應是一個 SilverLight |
|
響應是一個 FLASH |
|
響應是一個字體 |
|
普通響應成功 |
|
響應是 HTTP/300、301、302、303 或 307 重定向 |
|
響應是 HTTP/304(無變更):使用緩存文件 |
|
響應需要客戶端證書驗證 |
|
服務端錯誤 |
|
會話被客戶端、Fiddler 或者服務端終止 |