本文參考自http://blog.csdn.net/ohmygirl/article/details/17846199,純屬讀書筆記,加深記憶css
一、抓包工具備不少,爲何要使用Fiddler呢?緣由以下:html
a.Firebug雖然能夠抓包,可是對於分析http請求的詳細信息,不夠強大。模擬http請求的功能也不夠,且firebug經常是須要「無刷新修改」,若是刷新了頁面,全部的修改都不會保存。web
b.Wireshark是通用的抓包工具,可是比較龐大,對於只須要抓取http請求的應用來講,彷佛有些大材小用。chrome
c.Httpwatch也是比較經常使用的http抓包工具,可是隻支持IE和firefox瀏覽器(其餘瀏覽器可能會有相應的插件),對於想要調試chrome瀏覽器的http請求,彷佛稍顯無力,而Fiddler2 是一個使用本地 127.0.0.1:8888 的 HTTP 代理,任何可以設置 HTTP 代理爲 127.0.0.1:8888 的瀏覽器和應用程序均可以使用 Fiddler。瀏覽器
二、what is Fiddler?緩存
Fiddler是位於客戶端和服務器端的HTTP代理,也是目前最經常使用的http抓包工具之一,它可以記錄客戶端和服務器之間的全部 HTTP請求,能夠針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至能夠修改服務器返回的數據,功能很是強大,是web調試的利器。服務器
既然是代理,也就是說:客戶端的全部請求都要先通過Fiddler,而後轉發到相應的服務器,反之,服務器端的全部響應,也都會先通過Fiddler而後發送到客戶端,基於這個緣由,Fiddler支持全部能夠設置http代理爲127.0.0.1:8888的瀏覽器和應用程序。使用了Fiddler以後,web客戶端和服務器的請求以下所示:cookie
Fiddler4主界面網絡
注:經過主界面右上方的按鈕打開目標瀏覽器,這樣就能監控到該瀏覽器全部的HTTP請求了,可是你不是這樣操做的,那麼你就必須修改瀏覽器的代理,由於若是你的瀏覽器在開啓fiddler以後沒有設置相應的代理,則fiddler是沒法捕獲到HTTP請求的。以下是啓動Fiddler以後,IE瀏覽器的代理設置:session
以Firefox爲例,默認狀況下,firefox是沒有啓用代理的(若是你安裝了proxy等代理工具或插件,是另一種狀況),在firefox中配置http代理的步驟以下:
工具->選項->高級->網絡->設置 。並配置相應的代理以下:
下面開始分析主界面的功能區:
一、Fiddler菜單欄,上圖黑色部分,包括捕獲http請求,中止捕獲請求,保存http請求,載入本地session、設置捕獲規則等功能。
二、Fiddler的工具欄,上圖黃色部分,包括Fiddler針對當前view的操做(暫停,清除session,decode模式、清除緩存等)。
三、Web Session面板,上圖紅色部分,主要是Fiddler抓取到的每條http請求(每一條稱爲一個session),主要包含了請求的url,協議,狀態碼,body等信息,詳細的字段含義以下圖所示:
#欄圖標說明
另外,注意請求的host字段。能夠看到有來自多個www.csdn.net的子域名的響應,說明在大型網站的架構中,大多須要多個子域名,這些子域名多是單獨用於緩存靜態資源的,也多是專門負責媒體資源的,或者是專門負責數據統計的(如pingback)
右鍵單擊其中的一條請求。能夠選擇的操做有:save(保存請求的報文信息,能夠是請求報文,能夠是響應報文),將整條會話做爲txt保存到桌面,固然你能夠保存爲zip,能夠看到整個回話的內容以下:
四、詳情和數據統計板,針對每條http請求的具體統計(例如發送/接受字節數,發送/接收時間,還有粗略統計世界各地訪問該服務器所花費的時間)和數據包分析。如inspector面板下,提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息:
選擇單條回話,右鍵save->selected Sessions->as Txt,打開相關的文件
若是想要從新發送某些請求,能夠選中這些請求,而後點擊工具欄中的,而後就能夠從新發送選中的這些請求。
五、詳情和數據統計板
(1)、inspector面板
提供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頭信息。
(2)、AutoResponder標籤
Fiddler比較重要且比較強大的功能之一。可用於攔截某一請求,並重定向到本地的資源,或者使用Fiddler的內置響應。可用於調試服務器端代碼而無需修改服務器端的代碼和配置,由於攔截和重定向後,實際上訪問的是本地的文件或者獲得的是Fiddler的內置響應。當勾選allow autoresponser 並設置相應的規則後(本例中的規則是將http://blog.csdn.net/aaa的請求攔截到本地的文件http://localhost:54321/WebForm1.aspx),以下圖所示
(2)、Statistics面板
HTTP請求的性能和其餘數據分析
咱們能夠從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,創建TCP/IP鏈接的時間消耗是8ms等等信息。
(3)、composer面板
能夠模擬向相應的服務器發送數據的過程(不錯,這就是灌水機器人的基本原理,也能夠是部分http flood的一種方式)。
(3)、Filters面板
Filter標籤則能夠設置Fiddler的過濾規則,來達到過濾http請求的目的。最簡單如:過濾內網http請求而只抓取internet的http請求,或則過濾相應域名的http請求。Fiddler的過濾器很是強大,能夠過濾特定http狀態碼的請求,能夠過濾特定請求類型的http請求(如css請求,image請求,js請求等),能夠過濾請求報文大於或則小於指定大小(byte)的請求