參考連接:http://blog.csdn.net/ohmygirl/article/details/17849983/php
http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/Fiddler_config_cols.htmlcss
主要分爲6大部分:html
菜單欄,工具欄,會話列別,QuickExec命令行的使用,HttpRequest顯示欄 HttpResponse顯示欄web
四、查看HTTP統計視圖:正則表達式
一般fiddler會話列表中會顯示捕獲的全部的http通訊量,並以列表的形式展現出來,點擊你想查看的一個或者多個會話,再點擊軟件右邊的【Statustics】菜單,你就能夠很輕鬆的查看到請求數、發送字節數等信息。若是你選擇第一個請求和最後一個請求,還能夠得到頁面加載所消耗的整體時間,還能夠從圖表中分辯出那些請求耗時最多,從而能夠對頁面的訪問速度進行優化。express
五、QuickExec命令行的使用:瀏覽器
QuickExec命令行是會話列表下邊的黑色區域,你能夠在裏面輸入命令,回車以後便可執行你的命令,很是方便,在這裏爲你們介紹幾個經常使用的命令:緩存
help 打開官方的使用頁面介紹,全部的命令都會列出來安全
cls 清屏 (Ctrl+x 也能夠清屏)服務器
select 選擇會話的命令
?.png 用來選擇png後綴的圖片
bpu 截獲request
六、如何在fiddler中設置斷點修改Response:
主要有兩種方法:
一、點擊【設置】菜單—【自動斷點】—【響應以後】,這種方法是中斷全部的會話,若是你想消除斷點的話,就點擊【設置】—【自動斷點】—【禁用】就能夠了。
二、在QuickExec命令行中輸入:"bpuafter 網址/會話名",這種方法是中斷某一具體的會話,若是想消除命令的話,在命令行中輸入"bpuafter"。
七、如何在fiddler中建立AUTOResponder規則:
設置AUTOResponder規則的好處是容許你從本地返回文件,而不用將http request發送到服務器上。咱們就以訪問博客園網站爲例說明一下該功能的用法。
1) 打開博客園首頁,把博客園的LOGO圖片保存在本地,並把圖片修改一下。
2) 打開fiddler找到剛纔咱們有該LOGO圖片的會話,而後點擊軟件右邊的自動響應選項卡,在"Enable authomatic reponses"和"permit passthrought unmatched requests"前面都打上勾,將會話拖到"自動響應"列表框中。
3) 在右下角的Rule Editor的第二個文本框選擇"Find a File……",而後選擇本地保存的圖片,點擊"SAVE"按鈕保存就能夠了。
Fiddler抓取HTTP請求。
抓包是Fiddler的最基本的應用,以本博客爲例,啓動Fiddler以後,在瀏覽器中輸入http://blog.csdn.net/ohmygirl 鍵入回車以後,在Fiddler的web session界面捕獲到的HTTP請求以下圖所示:
上面的圖標後面的英文的意思依次爲:
1.請求正在被髮往服務器
2.正在從服務器接收請求內容
3.請求被一個斷點停住了。
4.響應被一個斷點停住了。
5.請求使用HEAD方法,響應應該沒有響應體。
6.請求使用POST方法
7.請求使用了HTTPS
8.返回內容爲HTML頁面
9.返回內容爲JS腳本
10.返回內容爲CSS
11.返回內容爲XML文件
12.返回內容爲JSON文件
13.返回內容爲音頻文件
14.返回內容爲視頻文件
15.返回內容爲Silverlight
16.返回內容爲Flash
17.返回內容爲字體文件
18.通常成功的響應
19.響應被重定向了,經過HTTP/300,301,302,303 or 307
20.HTTP 304 請求
21.返回一個須要客戶端證書驗證的請求
22.服務器端錯誤
23.會話被客戶端、Fiddler、服務器意外終止。
和會話列表的交互
在一個或者多個會話上面單擊右鍵會出現下面的菜單
小提示:你能夠經過在FiddlerScript中使用ContextAction標誌爲這個菜單添加菜單項。
在「複製」菜單上面有如下內容:
在「保存」菜單上面有如下內容:
AutoResponder 快速引用
今天咱們來看一下Fiddler的AutoResponder選項卡的強大功能。
Fiddler的AutoResponder 選項卡容許你使用本地硬盤的文件來做爲返回內容,而不是把請求發往服務器。
建立AutoResponder 規則。
使用AutoResponder選項卡,你能夠建立一個匹配規則和一個響應字符串,若是請求的URL地址跟你的匹配規則相匹配,
Fiddler就會自動執行這個對應的響應字符串。
小提示:
匹配規則:
純粹字符串
Fiddler將會按照不區分字母大小寫來匹配字符串。
Demo以下:
Rule | Matches |
---|---|
* | 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 |
跟上面的相似,Fiddler還有一個非字符串匹配的規則:NOT:
Demo以下:下面的都匹配。
Rule | Matches |
---|---|
NOT:EXAMPLE | http://www.test.com/Path1/query=test |
NOT:path1/ | http://www.example.com/Path2/query=example |
NOT:query | http://www.example.com/Path1/q |
Exact匹配:
表達式以EXACT:爲前綴,此匹配區分字母大小寫
Demo以下:
Rule | Matches |
---|---|
EXACT:http://www.example.com/path | http://www.example.com/path |
EXACT:http://www.example.com/path | http://www.example.com/Path (不匹配- 大小寫不同) |
EXACT:http://www.example.com/path | http://www.example.com/path/q=Query (不匹配- 子字符串不同) |
正則表達式:
Fiddler支持以regex:爲前綴的正則表達式語法,使用.+匹配一個或多個字符,使用.*匹配0個或多個字符,使用^匹配字符串開始位置,使用$匹配字符串結尾位置。
Demo以下:
Rule | Matches |
---|---|
regex:.+ | http://www.example.com/Path1/query=example |
regex:.+\.jpg.* | http://www.example.com/Path1/query=foo.jpg&bar http://www.example.com/Path1/query=example.jpg |
regex:.+\.jpg$ | http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending) http://www.example.com/Path1/query=example.jpg |
regex:.+\.(jpg|gif|bmp)$ | http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) http://www.example.com/Path1/query=example.gif http://www.example.com/Path1/query=example.Gif (No Match - mismatched case) http://www.example.com/Path1/query=example.bmp |
regex:(?insx).+\.(jpg|gif|bmp)$ | http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) http://www.example.com/Path1/query=example.gif http://www.example.com/Path1/query=example.Gif http://www.example.com/Path1/query=example.bmp |
想要學習更多正則表達式的請看這裏here.
響應字符串
除了簡單的返回文件,AutoResponder選項卡還有更多的用處........
Beyond simply returning files, the AutoResponder can also perform special actions...
Action String | Result... |
---|---|
filename | 返回文件內容做爲消息響應 |
http://targetURL | 返回此URL的內容做爲消息響應 |
*redir:http://targetURL | 返回一個跳轉URL,注意,不是通常的URL,必定要確保此URL知道要到哪裏去,以便攜帶上相關的Cookie信息。 |
*bpu | 設置一個斷點在發往服務器之前停住此請求Non-final action. |
*bpafter | 設置一個斷點在接收響應以前停住此請求Non-final action. |
*delay:#### | 設置在發給服務器以前的延時,以毫秒爲單位。Non-final action. |
*header:Name=Value | 設置請求頭的內容,若是沒有那個請求頭,則新建一個請求頭Name並設置爲ValueNon-final action. |
*flag:Name=Value | 設置Session Flag的內容,若是沒有那個Session Flag,則新建一個Session FlagName並設置爲ValueNon-final action. |
*CORSPreflightAllow | 返回一個響應標誌 CORS 是否被容許。. |
*reset | 使用一個TCP/IP RST 從新設置客戶端的連接。 |
*drop | 立刻關閉客戶端連接。 |
*exit | 這時候中止處理匹配。 |
若是你的匹配規則使用了正則表達式,那麼響應也可使用正則表達式,更多信息請看這裏: Learn more...
標誌爲Non-final action.的請求會匹配多個響應規則,若是一個規則是final action ,那麼再找到匹配以後,匹配過程就會結束,對於那條請求來講就不會再匹配其它的規則。
延遲響應
在一個請求返回來以前你能夠設置一下請求延遲返回的時間。選中Enable Latency 複選框,能夠設置全部的規則的延遲。
右鍵單擊一個或者多個規則,而後選擇 Set Latency 就能夠設置具體的延遲時間。若是你想調整現存的延遲時間,只須要輸入一個帶有+或者-號的數字便可。
若是你想在如今的延遲時間基礎上面減小500毫秒,那麼在彈出的輸入框中輸入-500便可。
各字段的詳細說明已經解釋過,這裏再也不說明。須要注意的是#號列中的圖標,每種圖標表明不一樣的相應類型,具體的類型包括:
另外,注意請求的host字段。能夠看到有來自多個www.csdn.net的子域名的響應,說明在大型網站的架構中,大多須要多個子域名,這些子域名多是單獨用於緩存靜態資源的,也多是專門負責媒體資源的,或者是專門負責數據統計的(如pingback)。
右鍵單擊其中的一條請求。能夠選擇的操做有:save(保存請求的報文信息,能夠是請求報文,能夠是響應報文)。例如,咱們保存的一條請求頭信息以下:
不只是單條session,Fiddler還支持保存全部抓取到的session(並支持導入),這對於抓取可疑請求而後保存,並在以後隨時分析這些請求是頗有幫助的。
若是想要從新發送某些請求,能夠選中這些請求,而後點擊工具欄中的reply.就能夠從新發送選中的這些請求。
左鍵點擊單條HTTP請求,能夠在右側的tab面板中看到以下信息:
關於HTTP請求的性能和其餘數據分析:
咱們能夠從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,創建TCP/IP鏈接的時間消耗是8ms等等信息。
分爲上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。對於每一部分,提供了多種不一樣格式查看每一個請求和響應的內容。JPG 格式使用 ImageView 就能夠看到圖片,HTML/JS/CSS 使用 TextView 能夠看到響應的內容。Raw標籤能夠查看原始的符合HTTP標準的請求和響應頭。Auth則能夠查看受權Proxy-Authorization 和 Authorization的相關信息。Cookies標籤能夠看到請求的cookie和響應的set-cookie頭信息。
Fiddler比較重要且比較強大的功能之一。可用於攔截某一請求,並重定向到本地的資源,或者使用Fiddler的內置響應。可用於調試服務器端代碼而無需修改服務器端的代碼和配置,由於攔截和重定向後,實際上訪問的是本地的文件或者獲得的是Fiddler的內置響應。當勾選allow autoresponser 並設置相應的規則後(本例中的規則是將http://blog.csdn.net/ohmygirl的請求攔截到本地的文件layout.html),以下圖所示
而後在瀏覽器中訪問http://blog.csdn.net/ohmygirl,獲得的結果實際爲:
這恰好是本地layout.html的內容,說明請求已經成功被攔截到本地.固然也可使用Fiddler的內置響應。下圖是Fiddler支持的攔截重定向的方式:
所以,若是要調試服務器的某個腳本文件,能夠將該腳本攔截到本地,在本地修改完腳本以後,再修改服務器端的內容,這能夠保證,儘可能在真實的環境下去調試,從而最大限度的減小bug發生的可能性。
不只是單個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
老版本的fiddler中叫request-builder.顧名思義,能夠構建相應的請求,有兩種經常使用的方式構建請求:
(1)Parsed 輸入請求的url以後executed便可,也能夠修改相應的頭信息(如添加經常使用的accept, host, referrer, cookie,cache-control等頭部)後execute.
這個功能的常見應用是:「刷票」(不是火車票!!),如刷新頁面的訪問量(基於道德和安全緣由,若是你真去刷票,刷訪問量,本博客概不負責)
(2)Raw。使用HTTP頭部信息構建http請求。與上相似。很少敘述
Fiddler另外一個比較強大的功能。Fiddler提供了多維度的過濾規則,足以知足平常開發調試的需求。以下圖示:
過濾規則有:
a. host和zone過濾。能夠過濾只顯示intranet或則internet的HTTP請求
也能夠選擇特定域名的HTTP請求
b. client process:能夠捕獲指定進程的請求。
這對於調試單個應用的請求頗有幫助。
其餘更多的設置能夠參考fiddler的官方文檔。