1. 程式人生 > >Fiddler調式使用知多少(一)深入研究

Fiddler調式使用知多少(一)深入研究

Fiddler調式使用(一)深入研究

閱讀目錄

回到頂部

Fiddler的基本概念:

     Fiddler是一款基於windows系統的代理伺服器軟體,本地執行的程式,比如web瀏覽器及其他客戶端的應用程式,可以把http和https請求傳送給Fiddler,Fiddler通常把這些請求轉發給web伺服器,伺服器將這些請求的響應返回給Fiddler,Fiddler再把響應轉發給客戶端。

      Fiddler 是以代理web伺服器的形式工作的,它使用代理地址:127.0.0.1, 埠:8888. 當Fiddler會自動設定代理, 退出的時候它會自動登出代理,這樣就不會影響別的程式。如果Fiddler非正常退出,這時候因為Fiddler沒有自動登出,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler即可。

回到頂部

安裝Fiddler

     安裝Fiddler之前需要安裝.net framework, 我目前的安裝的是Fiddler4,所以我下載安裝的是.net framework4,如下所示:

安裝Fiddler和安裝一般的軟體沒有什麼區別,這裡就不介紹~~;

回到頂部

瞭解下Fiddler使用者介面

我這邊是Fiddler4的介面如下:

在fiddler中web session介面中捕獲到http請求如下所示:

Web session列表蘭中包含了一些資訊如下:

回到頂部

理解不同圖示和顏色的含義(下面是常見的):

回到頂部

web session的常用的快捷鍵

CTRL+A: 選中所有的session;

ESC:  取消選中所有的session;

CTRL+I  反向選中;如果session已選中,則取消,否則選中;

CTRL+X  刪除所有的session;

Delete: 刪除選中的session;

Shift+Delete 刪除所有未選中的session

R  重新執行當前請求

SHIFT+R  多次重複執行當前請求

U: 無條件重新執行當前請求,傳送不包含If-Modified-Since 和 If-None-Match的請求頭

SHIFT+U 無條件地多次重複執行當前請求。

ALT+Enter 檢視當前session的屬性;

Insert:切換是否用紅色粗體標記選中的session

M  給選中的session新增描述;

回到頂部

瞭解web Session上下文選單

我們來點選session一項後,右鍵選單,會出現如下所示:

AutoScroll Session List選項用於決定Fiddler是否會自動把新增的session新增到web session列表中。

我們先來了解下 Copy選單項的一些session資訊如下:

Just Url: 把選中的session的url列表拷貝到剪貼簿,每行一個url。如下我們定位到session中,

當我們進行貼上的時候,看到是一個url地址;如下所示:

上面可以看到,我們還可以使用快捷鍵ctrl+u 實現;

This column: 拷貝選中session選單所在列的文字;如下:

到我們拷貝完成的時候,進行貼上的時候,可以看到如下文字:

HTTP

Terse summary:把選中的session的簡要說明覆制到剪貼簿中,簡要說明中包括請求方法,url,響應的狀態碼及狀態資訊,如果響應是HTTP/3xx重定向,文字中也會包括響應頭中Location欄位的內容;如下所示:

當我們進行貼上的時候,可以看到如下資訊:

GET http://www.telerik.com/UpdateCheck.aspx?isBeta=False

200 OK (text/plain)

當然如上也可以使用快捷鍵;

Headers only  把session的請求頭複製到剪貼簿中,既可以以純文字格式,也可以以HTML格式複製。如下:

貼上如下:

GET http://www.telerik.com/UpdateCheck.aspx?isBeta=False HTTP/1.1
User-Agent: Fiddler/4.5.1.2 (.NET 4.0.30319.1026; WinNT 6.1.7601 SP1; zh-CN; 2xx86)
Pragma: no-cache
Accept-Language: zh-CN
Referer: http://fiddler2.com/client/4.5.1.2
Host: www.telerik.com
Accept-Encoding: gzip, deflate
Connection: Close
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Set-Cookie: sid=jELer5vxx0gyb7Fw53nCXaobR7BcBb+Ortlpxuq2IuvsiQP1UoSgUO2DLC4HoxbgEq5YLfg959JRyKoL5ZX33nBVHffCk3UQDBWH5XAPRIGiSo9kJOvdHF6iP/UdEvLLyWb43itzcIaZNksXDEnidrB3lVo=; expires=Wed, 02-Jul-2025 01:56:29 GMT; path=/
Access-Control-Allow-Origin: http://converter.telerik.com
Date: Sun, 05 Jul 2015 01:56:29 GMT
Content-Length: 447
Connection: close

Session: 把整個session列表複製到剪貼簿中,支援以純文字和HTML這兩種格式進行復制。如下:

貼上結果如下:

GET http://www.telerik.com/UpdateCheck.aspx?isBeta=False HTTP/1.1
User-Agent: Fiddler/4.5.1.2 (.NET 4.0.30319.1026; WinNT 6.1.7601 SP1; zh-CN; 2xx86)
Pragma: no-cache
Accept-Language: zh-CN
Referer: http://fiddler2.com/client/4.5.1.2
Host: www.telerik.com
Accept-Encoding: gzip, deflate
Connection: Close

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Set-Cookie: sid=jELer5vxx0gyb7Fw53nCXaobR7BcBb+Ortlpxuq2IuvsiQP1UoSgUO2DLC4HoxbgEq5YLfg959JRyKoL5ZX33nBVHffCk3UQDBWH5XAPRIGiSo9kJOvdHF6iP/UdEvLLyWb43itzcIaZNksXDEnidrB3lVo=; expires=Wed, 02-Jul-2025 01:56:29 GMT; path=/
Access-Control-Allow-Origin: http://converter.telerik.com
Date: Sun, 05 Jul 2015 01:56:29 GMT
Content-Length: 447
Connection: close

­?

?`I?%&/m?{J?J??t??`[email protected]??????iG#)?*??eVe][email protected]????{???{???;?N'????\fdl??J??!???­?~|­?"????o??????o???w?{??>??wwog????$=[???2O_f?y??d?v]?i?XUu??g?f?O?n????Z7?d}q^???#

~'????=?_?????I??o???k???z?.?u??

7}???6[?7? }?-[|:o???w'eu???xZ-???uwU5msw????????W??n????v???F???????q?{~????_????q?f????i??????-?eZ??-}:????GOsB?X^?WE;O? ???I??U?]fE?M?|?'??^????M?u?PV?*?'D?4?.???b????4g?YkF?(?S????w???

Response DataURI :響應資訊的DataURI
截圖如下:

資訊如下:

data:text/plain;base64,H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/IvZ/4+T+b5zs/sbJ3m+c7I/vj3fHe+n3Pr27d3dvZ/f+93/jJD1brOrqMk9fZtO3eZueZKt2XedpsVhVdeu+n6Vny2aVT9uqbujTn8zqolo36WR9cV68y+kjA34n/d7+3T36Xwh/lr6pqrJJj9Jvf/n6zWv64vV6hS7Sl3X10wQ3fb3K6jZb0jf0Cn2RLVsPfDpv29Wju3cnZXXRjNu8zOvi7XhaLe6eF7MZ/XV3VTVtc3f3/vbO/vbeg7tX86zdbraX+dV2sdzWRtv72/e3iRi/cfJ7fvf0+cmXX5z+nr9x8maep6/zabWcpaezoi2qZVqdpy19Oqmqt+lHT3NC46JYXqRXRTtPnwmoj9KiSZfVVZpdZkWZTcp8/Bsnz/OsXqaLigiYTap1y1BW2SqvJ0TeNKMunr76Yvu8zvM0Z+hZa0amKOJTjOv/AeF3j4a5AQAA

Full Summary  把web session列表中顯示的資訊複製到剪貼簿。如下:

資訊如下:

#     Result     Protocol Host       URL Body      Caching  Content-Type       Process   Comments     Custom 

1     200 HTTP      www.telerik.com   /UpdateCheck.aspx?isBeta=False      447 private    text/plain; charset=utf-8       fiddler:6500

Save子選單中包含了用於把流量儲存到檔案中的一些選項;如下所示:

Selected Sessions中的In ArchiveZip 選項是把 Web Session列表中選中的session儲存到SAZ檔案中;如下所示:

Selected Sessions中的 As Text是把選中的所有session一起儲存到一個文字檔案中;如下:

Selected Sessions中的As Text(Headers only) 把選中session的請求頭和響應頭一起儲存到一個文字檔案中;下面還有很多選項,我這邊就不一一介紹,等用到某一項的時候,我們再來介紹;

回到頂部

Fiddler如何捕獲firefox中的會話

Fiddler啟動時預設是IE代理設定127.0.0.1:8888,其他瀏覽器需要手動設定;

Firefox手動設定如下:工具 –》選項 –》高階 –》網路 –》設定

即可生效;不過上面的設定比較麻煩,我們可以安裝一個外掛,如下:

Firefox中安裝FiddlerHook外掛

當我們安裝好fiddler後,就已經安裝好了FiddlerHook外掛了,我們需要去firefox中啟用這個外掛;工具—》附加元件—》擴充套件—》fiddlerHook啟用

啟用即可!!然後我們需要在firefox中進行設定即可;

我們再來看一下Firefox手動設定如下:工具 –》選項 –》高階 –》網路 –》設定

我們可以再來安裝一個hostAdmin外掛即可方便檢視。

回到頂部

Fiddler如何捕獲Https會話

預設下,Fiddler不會捕獲HTTPS會話,需要你設定下, 開啟Fiddler  Tool->Fiddler Options->HTTPS tab

 

彈出框後一直點選Yes即可;

回到頂部

Fiddler的HTTP統計檢視(可以優化請求和頁面)

    Fiddler的統計選項卡中顯示了當前Session的基本資訊,在選項卡的最上方顯示的是文字資訊,最下方是個餅圖,按MIME型別顯示流量。使用Statistics頁籤,使用者可以通過選擇多個會話來得來這幾個會話的總的資訊統計,比如多個請求和傳輸的位元組數。

選擇第一個請求和最後一個請求,可獲得整個頁面載入所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化。

如下所示:

餅圖如下:

統計選項卡的一些資訊含義如下解釋:

Request Count 選中的session數;

Unique Hosts 流量流向的獨立目標主機數。如果所有選中的流量都發送到相同的伺服器上,則不會顯示該欄位。

Bytes sent:  HTTP請求頭和請求體中向外傳送的位元組總數。後面括號中分別給出了頭和body各自的位元組數。

Bytes received: HTTP請求頭和請求體中接收到的所有位元組數。在全部計數後面的括號中給出了請求頭和請求體各自的位元組數。

Requests started at: Fiddler接收到的第一個請求的第一個位元組的時間點。

Responses completed at: Fiddler傳送到客戶端的最後一個響應的最後一個位元組的時間點。

Sequence(clock) duration:  第一個請求開始到最後一個響應結束之間的 “時鐘時間”。

Aggregate session duration: 所有選中的session從請求到響應之間的時間的和。

DNS Lookup time: 所有選中的session解析DNS所花費的時間的總和。

TCP/IP Connect duration: 所有選中session建立TCP/IP連線所花費的時間總和。

HTTPS Handshake duration: 所有選中session在HTTPS握手上所花費的時間總和。

Response Codes: 選中session中各個HTTP響應碼的計數。

Response Bytes by content-type: 選中session中響應的各個Content-Type的位元組數。

Estimated Performance: 選中的流量在不同語種(local)地區和連線方式下所需時間的初步估計。

回到頂部

移動開發如何使用fiddler調式程式碼

 1.  首先電腦和手機要使用同一個無線網。

 2.  配置Fiddler,點選 Tools  -->  Fiddler  Options 

 3.  手機端的配置,我這邊是Android手機(IOS也一樣),點選設定進去,選擇無線網,如下:

點選代理設定進去後,如下:

接下來可以看看我的ip地址如下:

如上設定後,我們就可以使用手機訪問網頁後,可以使用fiddler來監控請求或者替換js或者css檔案了;

注意:有時候我訪問的頁面提示  “代理伺服器連線失敗”,那麼這種情況下,很有可能是防火牆或者一些360類似的防毒軟體,我們可以在防火牆下設定為fiddler通過,如下所示:

4.  修改HOST

    如上設定我們可以監聽頁面請求了,但是如果我想要監聽本地的伺服器端的程式碼,就訪問不了(我本地使用的伺服器是php環境),比如上我在本地做demo,如果一切好的話,我上傳到伺服器端去,首先我們需要啟動php伺服器;啟動好後,我們來使用本機的ip來訪問下;如下所示:

1.  我們需要在fiddler裡面修改配置,Tools –》 HOSTS,如下:

點選儲存按鈕後,我們接著再訪問頁面,就可以訪問了,如下:

頁面可以訪問後,有時候我們想替換下js或者css檔案,我們就可以使用右側的tab選項欄中的AutoResponder了,如下:

在最下面的可以替換一些js或者css檔案即可了;這裡就不多介紹了~

如上是目前總結的一些基本fiddler基本知識點, 在接下來的業餘時間會多去總結Fiddler相關調式方面的知識點~  如果總結的不好的話,希望大家多多指教~~

    總結:Fiddler基本知識點總結如上一些,在接下來的時間會全面總結Fiddler相關的含義,我們平時用到的Fiddler一些方面,但是我們還需要多去理解其他各個方面的含義,為以後使用代理http請求或者優化頁面有更好的理解,因此我覺得有必要的多去學習下Fiddler知識點~ 所以Fiddler一直會有下文總結的~~

相關推薦

Fiddler調式使用多少()深入研究

Fiddler調式使用(一)深入研究 閱讀目錄 回到頂部 Fiddler的基本概念:      Fiddler是一款基於windows系統的代理伺服器軟體,本地執行的程式,比如web瀏覽器及其他客戶端的應用程式,可以把http和https請求傳送給Fiddler,Fiddler通常把這些請

Spring深入研究

Spring 建立Spring配置檔案 Spring配置檔案 名字位置不固定 放在src目錄下面,命名applicationContext.xml schema約束 <?xml

篇經典的求職經歷部落格,值得深入研究和學習

(十):總結篇  本篇是我的系列文章的最後一部分:總結篇。    前面的文章裡,已經把找工作過程中各個環節的經驗和技巧詳細的介紹給了大家。在這一篇裡,我想從整體上把自己找工作這段時間積累的感悟和經驗分享給大家,並不會涉及具體的找工作細節,但是相信可能會對那些還在找工作或將要找工作的同學有所啟發。 

OkHttp的深入研究

Okhttp是現在非常流行的網路框架,據說是可以取代我們自己手碼java.net.*或Org.apache的強大工具,那麼它到底有何優勢呢?在其官網上有如下描述:OkHttp是一個高效的HTTP客戶端:1 HTTP2支援允許所有有相同host的請求分享一個socket。2

深入研究java.lang.Object類

下一個 line 版本號 gin bool 獲得 不同 ava 表達 前言:Java的類庫日益龐大。所包括的類和接口也不計其數。但當中有一些非常重要的類和接口,是Java類庫中的核心部分。常見的有String、Object、Class、Collection、Class

【轉載】對一致性Hash算法,Java代碼實現的深入研究

困難 之前 存在 itl ger 正常 我不 操作 算法實現 原文地址:http://www.cnblogs.com/xrq730/p/5186728.html 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一

對一致性Hash算法,Java代碼實現的深入研究

memcach 還原 情況 () 實用 target 強人 最壞情況 一致性hash 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一文中"一致性Hash算法"部分,對於為什麽要使用一致性Hash算法、一致性Has

攝影EV值深入研究

ges 基於 http image 根據 logs 沒有 1.3 .com 1. 什麽是EV值 1.1. EV值定義 EV(Exposure Value),曝光值,是反應曝光量的一個值。當感光度為ISO 100、光圈值為F1、曝光時間為1秒時,定義曝光量為0

HashMap源碼深入研究

cti jdk 技術 logs eva sdn 同步 示例 not 簡介 HashMap是采用鏈表和位桶來來實現的,由於一個位桶存在元素太多會導致get效率低,因此在jdk1.8中采用的紅黑樹實現,當鏈表長度大於TREEIFY_THRESHOLD(值為8)時會轉換為紅黑樹

【Java深入研究】2、LinkedList源碼解析

hand exception second 處的 err 所有 one tee string 一、源碼解析 1、 LinkedList類定義。 public class LinkedList<E> extends AbstractSe

七天學會ASP.NET MVC ()——深入理解ASP.NET MVC

button點擊 工具 建行 嘗試 studio 深入 matching 學會 場景 ASP.NET vs MVC vs WebForms 許多ASP.NET開發人員開始接觸MVC認為MVC與ASP.NET完全沒有關系,是一個全新的Web開發,事實上ASP.NET是創建WE

動態規劃 —— 背包問題 專項研究學習

++ clu ace tro 問題 clas text 狀態 sca 背包問題OJ地址:http://oj.noi.cn/oj/#main/show/1159 1159. 背包問題一 (Standard IO) 時間限制: 1000 ms 空間限制: 262144 KB

checkbox復選框的一些深入研究與理解(張)

ack 註意 聖誕 return tle script ++ doc div 原文鏈接:http://www.zhangxinxu.com/wordpress/?p=466 1 <!DOCTYPE html> 2 <html lang="en">

【JavaNIO的深入研究4】內存映射文件I/O,大文件讀寫操作,Java nio之MappedByteBuffer,高效文件/內存映射

int start lib 交換文件 bsp 沒有 res collected str time 內存映射文件能讓你創建和修改那些因為太大而無法放入內存的文件。有了內存映射文件,你就可以認為文件已經全部讀進了內存,然後把它當成一個非常大的數組來訪問。這種解決辦法能大大簡化修

深入研究互聯網項目技術或者項目團隊建設

項目管理 互聯網平臺建設 holison將長期堅持專註於互聯網技術或者項目團隊建設研究,致力於成為互聯網平臺或者項目團隊建設方面的專家。為更多的中小企業打造出強大的互聯網平臺出發。堅持始終以幫助到求職者為出發點;堅持始終以幫助到用人單位為出發點;堅持始終以幫助到同事為出發點;堅持不斷提升服務質量和效益

3. 深入研究 UCenter API 之 加密與解密(轉載)

method href img 破解 cti subst != efault times 1. 深入研究 UCenter API 之 開篇 (轉載) 2. 深入研究 UCenter API 之 通訊原理(轉載) 3. 深入研究 UCenter API 之

java基礎() 深入解析基本類型

後者 active 位數 自動完成 符號 情況 換算 ade 相等 一、基本類型的簡介 基本類型的兩條準則: Java中,如果對整數不指定類型,默認時int類型,對小數不指定類型,默認是double類型。 基本類型由小到大,可以自動轉換,但是由大到小,則需要強制類型轉換。

深入研究Spark SQL的Catalyst優化器(原創翻譯)

超越 href 語法 英文 更多 com edi 此外 並行化 Spark SQL是Spark最新和技術最為復雜的組件之一。它支持SQL查詢和新的DataFrame API。Spark SQL的核心是Catalyst優化器,它以一種新穎的方式利用高級編程語言特性(例如Sca

java基礎() 深入解析基本類型

java一、基本類型的簡介 基本類型的兩條準則: Java中,如果對整數不指定類型,默認時int類型,對小數不指定類型,默認是double類型。 基本類型由小到大,可以自動轉換,但是由大到小,則需要強制類型轉換。 所占的字節數: byte: 1個字節;char: 2個字節;short: 2個字節;int:

【轉載】xilinx 高速收發器Serdes深入研究

monitor 需要 .com 采樣 就會 其它 fsm 拼接 valid   此篇文章深入淺出介紹了關於高速串行收發器的幾個重要概念和註意事項,為方便知識點復習總結和後續查閱特此轉載,原文標題及鏈接為:xilinx 高速收發器Serdes深入研究 - CSDN博客 h