本文基於Fiddler4
講解基本使用css
注意:Fiddler 是以代理web服務器的形式工做的,它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動註銷,這樣就不會影響別的 程序。不過若是Fiddler非正常退出,這時候由於Fiddler沒有自動註銷,會形成網頁沒法訪問。解決的辦法是從新啓動下Fiddler。html
打開Fiddler Tool->Fiddler Options->HTTPS 。 (配置完後記得要重啓Fiddler).android
選中"Decrpt HTTPS traffic", Fiddler就能夠截獲HTTPS請求,第一次會彈出證書安裝提示,若沒有彈出提示,勾選Actions-> Trust Root Certificateweb
另外,若是你要監聽的程序訪問的 HTTPS 站點使用的是不可信的證書,則請接着把下面的 「Ignore servercertificate errors」 勾選上。正則表達式
證書安裝提示:windows
點擊Yes,留意一下紅框裏面的內容,DO_NOT_TRUST_FiddlerRoot ,這個就是證書的名稱。 瀏覽器
點擊是。 緩存
點擊肯定,這樣Fiddler證書就已經添加成功了。服務器
查看一下證書,Actions—>open windows certificate Manager cookie
能夠證書已經添加進去了,證書名稱就是以前提醒你們留意的,【DO_NOT_TRUST_FiddlerRoot】
fiddler監聽端口默認是 8888,你能夠把它設置成任何你想要的端口。勾選上 「Allow remote computersto connect」 ,容許遠程設備鏈接。
爲了減小干擾,能夠去掉 「Act assystem proxy on startup」 。
首先查看電腦的 IP 地址,確保手機和電腦在同一個局域網內
將 Fiddler 代理服務器的證書導到手機上才能抓這些 APP 的包。導入的過程:打開瀏覽器,在地址欄中輸入代理服務器的 IP 和端口(即電腦的IP加fiddler的端口),會看到一個Fiddler 提供的頁面,而後肯定安裝就行了
打開 WiFi 設置頁面,選擇要鏈接的 wifi ,而且長按,在彈出的對話框中,選擇「修改網絡」。在接下來彈出的對話框中,勾選「顯示高級選項」。在接下來顯示的頁面中,點擊「代理」,選擇「手動」。代理服務器主機名設爲 PC 的 IP ,代理服務器端口設爲 Fiddler 上配置的端口 8888,點」保存」。
蘋果手機上的配置其實跟 Android 手機基本是同樣的。如圖
至此已配置完成。
會話的概念:一次請求和一次響應就是一個會話。
fiddler主界面
下面挑幾個快捷功能區中經常使用幾項解釋,其餘功能本身嘗試:
1:給會話添加備註信息 2:從新加載當前會話 3:刪除會話選項 4:放行,和斷點對應,後面詳細講解 5:響應模式。也便是,當Fiddler拿到遠程的response後是緩存起來一次響應給客戶端仍是以stream的方式直接響應。 6:解碼。有些請求是被編碼的,點擊這個按鈕後能夠根據響應的編碼格式自動解碼。 7:查找會話。 8:保存會話。 9:截屏。截屏後,會以會話的方式返回一個截圖。
#欄圖標說明
刪除一條會話,能夠在選中會話後,按del刪除,如若要清空列表,能夠用Ctrl+X
左鍵點擊單條HTTP請求,能夠在右側的tab面板中看到以下信息:
關於HTTP請求的性能和其餘數據分析:
咱們能夠從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,創建TCP/IP鏈接的時間消耗是8ms等等信息。
提供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頭信息。
Fiddler 的AutoResponder tab容許你從本地返回文件,而不用將http request 發送到服務器上。
下邊直接說他的使用方式把:
使用的是手機上邊的百度手機助手的棋牌遊戲界面。
一、首先看圖 (咱們來重定向第一個歡樂鬥地主這個圖片)
二、打開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文件。
Composer容許自定義請求發送到服務器,能夠手動建立一個新的請求,也能夠在會話表中,拖拽一個現有的請求
Parsed模式下你只須要提供簡單的URLS地址便可(以下圖,也能夠在RequestBody定製一些屬性,如模擬瀏覽器User-Agent)
如圖,箭頭所指的位置時能夠點擊的。共三種狀態:
空白:不設置斷點。
箭頭向上:表示斷點請求。此時客戶端的請求是沒法直接到達目標服務器的,須要手動控制。
箭頭向下:表示斷點響應。此時目標服務器的響應是沒法直接到達客戶端的,須要手動控制。
還有一種打斷點的方式
在命令行中輸入命令:
bpu www.baidu.com (斷點請求)
bpuafter www.baidu.com(斷點響應)
這種方法只會中斷www.baidu.com
如圖,操做步驟:
圖中Break On Response表示把請求發給服務器,可是服務器的響應被fiddler攔截,此時能夠修改響應內容(和斷點響應相似)。
和斷點請求操做相似,只是在響應區域修改報文信息便可。
在斷點響應時,請注意超時時間。
Fiddler抓包能夠完成咱們移動開發者的調試測試需求。可是多餘的網頁請求和手機的其餘連接影響咱們手機開發的需求。因此咱們須要排除其餘無用的包,只關注咱們指定的域名的請求包。
打開fiddler,找到Filters選項並點擊打開。如圖所示
默認狀況下,這個頁面是灰色的,表明默認不過濾任何請求。如今咱們勾選 Use Filters
。
通常經常使用的有三種過濾條件:
1.域名過濾,只顯示特定域名的記錄:
*.baidu.com表示全部的百度二級域名會話;*baidu.com表示一級域名+二級域名的會話。設置好了後必定要點擊Actions生效;
2.類型過濾,通常對各類圖片、CSS、JS這類的靜態素材也不須要看的狀況下,直接所有過濾掉
須要過濾多少本身直接加入就行了
3.根據返回狀態碼,好比只想顯示200的狀態,其餘的不顯示
問號(?)後邊跟一個字符串,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 後邊跟一個字符串,表示中斷全部包含該字符串的會話。
好比我想中斷全部包含 fishc 的響應,那麼我輸入 bpafter fishc,而後在瀏覽器輸入 bbs.fishc.com,發現並無收到服務器響應,所以都給 Fiddler 斷下來了:
bps 後邊跟的是 HTTP 狀態碼,表示中斷全部爲該狀態碼的會話。
bpv 或 bpm 後邊跟的是 HTTP 方法,表示中斷全部爲該方法的會話。
跟 bpafter 相似,區別:bpu 是在發起請求時中斷,而 bpafter 是在收到響應後中斷。
清除當前的全部會話。
將全部的會話打包成 .zip 壓縮包的形式保存到 C 盤根目錄下。
放行全部中斷下來的會話。
將 Fiddler 隱藏。
將 Fiddler 恢復。
urlreplace 後邊跟兩個字符串,表示替換 URL 中的字符串。好比 urlreplace baidu fishc 表示將全部 URL 的 baidu 替換成 fishc。
舒適提示:直接輸入 urlreplace 不帶任何參數表示恢復原來的樣子。
Fiddler 開始工做。
Fiddler 中止工做。
關閉 Fiddler。
select 後邊跟響應的類型(Content-Type),表示選中全部匹配的會話。
好比但願 Fiddler 選中全部的圖片,可使用 select image;
而 select css 則選中全部的 css 文件;
固然,select htm 就是選中全部的 html 文件啦~
跟 select 相似,不過 allbut 和 keeponly 會將全部無關的會話刪除。
好比我只想看圖片,那麼我能夠 keeponly image,表示將全部與圖片無關的會話刪除:
後邊跟一個域名,執行 DNS 查找並在右邊的 LOG 欄打印結果:
設置其餘監聽的端口,默認是 8888。。