Fiddler是一款非常流行並且實用的http抓包工具,它的原理是在本機開啓了一個http的代理服務器,然後它會轉發所有的http請求和響應,因此,它比一般的firebug或者是chrome自帶的抓包工具要好用的多。
不僅如此,它還可以支持請求重放等一些高級功能。
顯然它是可以支持對手機應用進行http抓包的。
下載鏈接:http://files.cnblogs.com/xiaokang088/fiddler4setup.zip
右側窗口:
Stastics:統計選中的一個或多個請求相關數據,大小、耗時
Inspectors:多種方式查看Request或者Response的詳細消息
AutoResponder: 設置一些規則將符合規則的請求指向本地。
Composer:創建發送HTTP請求
Log:日誌
Filters:設置會話過濾規則
Timeline:網絡請求時間
當你啓動了Fiddler,程序將會把自己作爲一個微軟互聯網服務的系統代理中去。你可以通過檢查代理設置對話框來驗證Fiddler是被正確地截取了web請求。操作是這樣的:點擊IE設置,工具,局域網設置,最後點擊高級。
作爲系統代理,所有的來自微軟互聯網服務(WinInet)的http請求再到達目標Web服務器的之前都會經過Fiddle,同樣的,所有的Http響應都會在返回客戶端之前流經Fiddler。這樣,就能明白Fiddler很多作用了吧!
當你關閉Fiddler的時候,它就會自動從系統註冊表中移出。
用Fiddler來做性能測試 HTTP統計視圖通過顯示所有的Http通訊,Fiddler可以輕鬆的演示哪些用來生成一個頁面,通過統計頁 面(就是Fiddler左邊的那個大框)用戶可以很輕鬆的使用多選,來得到一個WEB頁面的“總重量”(頁面文件以及相關js,css等)你也可以很輕鬆 得看到你請求的某個頁面,總共請求了多少次,以及多少字節被轉化了。
通過暴露HTTP頭,用戶可以看見哪些頁面被允許在客戶端或者是代理端進行緩存。如果要是一個響應沒有包含Cache-Control 頭,那麼他就不會被緩存在客戶端。
Fiddler支持斷點調試概念,當你在軟件的菜單—rules—automatic breakpoints選項選擇beforerequest,或者當這些請求或響應屬性能夠跟目標的標準相匹配,Fiddler就能夠暫停Http通訊, 情切允許修改請求和響應。這種功能對於安全測試是非常有用的,當然也可以用來做一般的功能測試,因爲所有的代碼路徑都可以用來演習。
fiddler的基本界面
inspectors tab下有很多查看request或者response的消息。
raw tab可以查看完整的消息
headers tab 只查看消息中的header
WebForms tab 以直觀的界面查看Body值和QueryString值
Cookies tab 以直觀的界面查看header中的cookie值
通過陳列出所有的http通信量,fiddler可以很容易的向您展示哪些文件生成了您當前請求的頁面。
使用statistics頁籤,用戶可以通過選擇多個會話來得來這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。
選擇第一個請求和最後一個請求,可獲得整個頁面加載所消耗的總體時間。
從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化。
fiddler的左下角有一個命令行工具叫做quickexec,允許你直接輸入命令。
常見得命令有:
help 打開官方的使用頁面介紹,所有的命令都會列出來
cls 清屏 (ctrl+x 也可以清屏)
select 選擇會話的命令
?.png 用來選擇png後綴的圖片
bpu 截獲request
fiddler中設置斷點修改request
設置好斷點後,你可以修改httprequest 的任何信息,包括host, cookie或者表單中的數據。
設置斷點有兩種方法:
第一種:打開fiddler 點擊rules-> automatic breakpoint ->before requests(這種方法會中斷所有的會話)
如何消除命令呢?
點擊rules-> automatic breakpoint ->disabled
第二種: 在命令行中輸入命令: bpu www.baidu.com (這種方法只會中斷www.baidu.com)
如何消除命令呢?
在命令行中輸入命令 bpu
fiddler中設置斷點修改response
第一種:打開fiddler 點擊rules-> automatic breakpoint ->after response (這種方法會中斷所有的會話)
如何消除命令呢?
點擊rules-> automatic breakpoint ->disabled
第二種: 在命令行中輸入命令: bpuafter www.baidu.com (這種方法只會中斷www.baidu.com)
如何消除命令呢?
在命令行中輸入命令 bpuafter
fiddler中創建autoresponder規則
fiddler 的autoresponder tab允許你從本地返回文件,而不用將http request 發送到服務器上。
fiddler中如何過濾會話
每次使用fiddler, 打開一個網站,都能在fiddler中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話. fiddler中有過濾的功能, 在右邊的filters tab中,裏面有很多選項
補充知識:
1、Cache-Control頭的參數設置:
Public 響應會被緩存,並且在多用戶間共享。
Private 響應只能夠作爲私有的緩存,不能再用戶間共享。
No-cache 響應不會被緩存
No-store 響應不會被緩存,並且不會被寫入到客戶端的磁盤裏,這也是基於安全考慮的某些敏感的響應纔會使用這個。
Max-age=#seconds 響應將會某個指定的秒數內緩存,一旦時間過了,就不會被緩存。
Must-revalidate 響應會被重用來滿足接下來的請求,但是它必須到服務器端去驗證它是不是仍然是最新的。