1. 程式人生 > >Fiddler4 入門級使用教程

Fiddler4 入門級使用教程

    最近公司涉及到網站資料抓包的需求,以前從來沒有接觸過,經過學習,瞭解了Fiddler4抓包工具,特此在這給大家分享學習心得。裡面藉助一些我學習到的資料和圖片資源。

引用原文連結地址:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料. 使用Fiddler無論對開發還是測試來說,都有很大的幫助。

閱讀目錄

Fiddler的基本介紹

Fiddler官方網站提供了大量的幫助文件和視訊教程, 這是學習Fiddler的最好資料。

Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基於事件指令碼的子系統,並且能使用.net語言進行擴充套件

你對HTTP 協議越瞭解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能幫助你瞭解HTTP協議.

Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具

Fiddler的工作原理

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

同類的其它工具

同類的工具有: httpwatch, firebug, wireshark

Fiddler 如何捕獲Firefox的會話

能支援HTTP代理的任意程式的資料包都能被Fiddler嗅探到,Fiddler的執行機制其實就是本機上監聽8888埠的HTTP代理。 Fiddler2啟動的時候預設IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設定的,所以將Firefox的代理改為127.0.0.1:8888就可以監聽資料了。

Firefox 上通過如下步驟設定代理

點選: Tools -> Options,  在Options 對話方塊上點選Advanced tab - > network tab -> setting.

Firefox 中安裝Fiddler外掛

修改Firefox 中的代理比較麻煩, 不用fiddler的時候還要去掉代理。 麻煩

推薦你在firefox中使用fiddler hook 外掛, 這樣你非常方便的使用Fiddler獲取firefox中的request 和response

當你安裝fiddler後, 就已經裝好了Fiddler hook外掛, 你需要到firefox中去啟用這個外掛
開啟firefox   tools->Add ons -> Extensions 啟動 FiddlerHook

Fiddler如何捕獲HTTPS會話

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

 選中checkbox, 彈出如下的對話方塊,點選"YES"

點選"Yes" 後,就設定好了

Fiddler的基本介面

 看看Fiddler的基本介面

Inspectors tab下有很多檢視Request或者Response的訊息。 其中Raw Tab可以檢視完整的訊息,Headers tab 只檢視訊息中的header. 如下圖

Fiddler的HTTP統計檢視

通過陳列出所有的HTTP通訊量,Fiddler可以很容易的向您展示哪些檔案生成了您當前請求的頁面。使用Statistics頁籤,使用者可以通過選擇多個會話來得來這幾個會話的總的資訊統計,比如多個請求和傳輸的位元組數。

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

QuickExec命令列的使用

Fiddler的左下角有一個命令列工具叫做QuickExec,允許你直接輸入命令。

常見得命令有

help  開啟官方的使用頁面介紹,所有的命令都會列出來

cls    清屏  (Ctrl+x 也可以清屏)

select  選擇會話的命令

?.png  用來選擇png字尾的圖片

bpu  截獲request

Fiddler中設定斷點修改Request

[作者:小坦克]  Fiddler最強大的功能莫過於設定斷點了,設定好斷點後,你可以修改httpRequest 的任何資訊包括host, cookie或者表單中的資料。設定斷點有兩種方法

第一種:開啟Fiddler 點選Rules-> Automatic Breakpoint  ->Before Requests(這種方法會中斷所有的會話)

如何消除命令呢?  點選Rules-> Automatic Breakpoint  ->Disabled

第二種:  在命令列中輸入命令:  bpu www.baidu.com   (這種方法只會中斷www.baidu.com)

如何消除命令呢?  在命令列中輸入命令 bpu

看個例項,模擬部落格園的登入, 在IE中開啟部落格園的登入頁面,輸入錯誤的使用者名稱和密碼,用Fiddler中斷會話,修改成正確的使用者名稱密碼。這樣就能成功登入

1. 用IE 開啟部落格園的登入介面  http://passport.cnblogs.com/login.aspx
2. 開啟Fiddler,  在命令列中輸入bpu http://passport.cnblogs.com/login.aspx
3. 輸入錯誤的使用者名稱和密碼 點選登入
4. Fiddler 能中斷這次會話,選擇被中斷的會話,點選Inspectors tab下的WebForms tab 修改使用者名稱密碼,然後點選Run to Completion 如下圖所示。
5. 結果是正確地登入了部落格園

Fiddler中設定斷點修改Response

當然Fiddler中也能修改Response

第一種:開啟Fiddler 點選Rules-> Automatic Breakpoint  ->After Response  (這種方法會中斷所有的會話)

如何消除命令呢?  點選Rules-> Automatic Breakpoint  ->Disabled

第二種:  在命令列中輸入命令:  bpafter www.baidu.com   (這種方法只會中斷www.baidu.com)

如何消除命令呢?  在命令列中輸入命令 bpafter,

具體用法和上節差不多,就不多說了。

Fiddler中建立AutoResponder規則

Fiddler 的AutoResponder tab允許你從本地返回檔案,而不用將http request 傳送到伺服器上。

看個例項. 1. 開啟部落格園首頁,把部落格園的logo圖片儲存到本地,並且對圖片做些修改。

2. 開啟Fiddler 找到logo圖片的會話, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif,  把這個會話拖到AutoResponer Tab下

3. 選擇Enable automatic reaponses 和Unmatched requests passthrough

4. 在下面的Rule Editor 下面選擇 Find a file... 選擇本地儲存的圖片.  最後點選Save 儲存下。

5.  再用IE部落格園首頁, 你會看到首頁的圖片用的是本地的。

Fiddler中如何過濾會話

每次使用Fiddler, 開啟一個網站,都能在Fiddler中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話. Fiddler中有過濾的功能, 在右邊的Filters tab中,裡面有很多選項, 稍微研究下,就知道怎麼用。

Fiddler中會話比較功能

選中2個會話,右鍵然後點選Compare,就可以用WinDiff來比較兩個會話的不同了 (當然需要你安裝WinDiff)

Fiddler中提供的編碼小工具

點選Fiddler 工具欄上的TextWizard,  這個工具可以Encode和Decode string.

Fiddler中查詢會話

用快捷鍵Ctrl+F 開啟 Find Sessions的對話方塊,輸入關鍵字查詢你要的會話。 查詢到的會話會用黃色顯示

Fiddler中儲存會話

有些時候我們需要把會話儲存下來,以便發給別人或者以後去分析。  儲存會話的步驟如下:

選擇你想儲存的會話,然後點選File->Save->Selected Sessions

Fiddler的script系統

首先先安裝SyntaxView外掛,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下圖

安裝成功後Fiddler 就會多了一個Fiddler Script tab, 如下圖

在裡面我們就可以編寫指令碼了, 看個例項 讓所有cnblogs的會話都顯示紅色。

把這段指令碼放在OnBeforeRequest(oSession: Session) 方法下,並且點選"Save script"

     if (oSession.HostnameIs("www.cnblogs.com")) {
            oSession["ui-color"] = "red";
        }

這樣所有的cnblogs的會話都會顯示紅色

如何在VS除錯網站的時候使用Fiddler

我們在用visual stuido 開發ASP.NET網站的時候也需要用Fiddler來分析HTTP, 預設的時候Fiddler是不能嗅探到localhost的網站。不過只要在localhost後面加個點號,Fiddler就能嗅探到。

例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,  加個點號後,變成 http://localhost.:2391/Default.aspx 就可以了

第二個辦法就是在hosts檔案中加入  127.0.0.1  localsite

如何你訪問http://localsite:埠號   。  這樣Fiddler也能擷取到了。

Response 是亂碼的

有時候我們看到Response中的HTML是亂碼的, 這是因為HTML被壓縮了, 我們可以通過兩種方法去解壓縮。

1. 點選Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"

2. 選中工具欄中的"Decode"。  這樣會自動解壓縮。


相關推薦

Fiddler4 入門使用教程

    最近公司涉及到網站資料抓包的需求,以前從來沒有接觸過,經過學習,瞭解了Fiddler4抓包工具,特此在這給大家分享學習心得。裡面藉助一些我學習到的資料和圖片資源。 引用原文連結地址:http://www.cnblogs.com/TankXiao/archive/

全網首創ISE入門教程

加法 表示 cnblogs htm padding 九月 雲服務器 對他 實驗   轉眼間我已經大三了,現在成為了實驗室的負責人,對於下一屆學生的納新重任就交到了我的手上,想采取不同的方法暑假就可能對他們進行一些培訓,所以制作了此教程,說實話,在網上還沒有找到關於ISE的

Unity黑巧克力 滾球遊戲 入門教程

教學 操作 遊戲 界面 版本 查看 入門級 get 入門 《黑巧克力》系列教程是適合於新手上手Unity的教程,本教程適合作為初次接觸Unity(零基礎)的第一篇的教程。學習本教程需要有的基礎是:線性代數、編程基礎、Csharp語言基礎、Unity自學經歷3天以上。如果讀者

Android Studio 入門教程

努力 啟用 tel key map oid fonts class first 引用原文:http://www.cnblogs.com/abao0/p/6934023.html 寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自

Android 入門教程 《第一行代碼》 中遇到的問題

appt 因此 部分 str 沒有 owa app ring pre 1、自定義ToolBar時,我們需要把ActionBar關掉,因此我們通常會加如下代碼: <item name="windowActionBar">false</item> <

ArcGIS Engine10.0輕鬆入門教程(2)——建立一個ArcGIS Engine桌面應用程式 ArcGIS Engine10.0輕鬆入門教程(3)——ArcEngine10.0查詢分析功能 ArcGIS Engine— 學習圖層符號化

ArcGIS Engine10.0輕鬆入門級教程(1)——必備基礎知識 ArcGIS Engine10.0輕鬆入門級教程(2)——建立一個ArcGIS Engine桌面應用程式 ArcGIS Engine10.0輕鬆入門級教程(3)——ArcEngine

Visual C++使用入門教程

4.選中建立桌面快捷方式,,進行下一步。 5.安裝中,等待大約一分鐘 6.好啦,安裝完成了,點選完成,它會自動執行。 7.首次使用軟體會有相容性的提示,點選不再顯示並執行程式,若你的相容性出現

eclipse 整合maven及maven的使用(入門教程,高手略過)

eclipse整合maven及maven使用教程 網上看了很多eclipse 和maven整合的教程,對於懂maven的人來說一眼都能看懂,但對於新手來說還是有困難,說以些了這篇教程分享一下(我也是新

前端開發----微信小程式入門教程(前篇)

前言 前段時間,憑藉著出生牛犢不怕虎的勁頭,憑藉著一點Java基礎和前端入門的知識水平,買了域名和伺服器準備搭建自己的一個技術站點,初衷是旨在打造自己成為一個T形全站工程師。後經過各種百度,各種折騰終於大概在半個月左右的時間寫好了幾個基本介面,能上傳圖片,釋出

nodejs學習筆記》入門教程

   簡單的說 Node.js 就是執行在服務端的 JavaScript。它的優勢是基於Google的V8引擎(執行速度非常快、效能非常好、社群活躍),更具誘惑力的是採用node+mongodb開發中小型網站速度更快(據說成本更低)。 目錄

GoLang入門教程

Go語言 Go語言 一、概述 1.定義 2.特點 3.用途 二、GoLang環境安裝 1.支援系統 2.Linux/Mac OS X, 和 FreeBS

使用github實現共享程式碼的一些入門教程

現階段,很多專案都是多人共同完成的,那麼就會涉及到“版本”問題,即如何實時地檢視專案程式碼,如何讓別人看到你的程式碼,如何回到修改之前的程式碼......這些問題可以通過使用git向github上傳程

Longhorn入門教程!輕鬆實現持久化儲存!

介 紹 在本文中你將學會如何使用k3s在Civo上執行Longhorn。如果你還沒使用過Civo,可以到官網註冊(https://www.civo.com/ )還可以申請免費的使用額度。首先,需要一個Kubernetes叢集,然後我們將安裝Longhorn並通過一個示例來展現如何使用它。 雲原生應用程式的

0-完全開源的 Vue.js 入門教程:HelloVue,發車啦!

> 本教程基於 Vue.js 2.x ![](https://img2020.cnblogs.com/blog/759200/202010/759200-20201015143907793-1871549426.jpg) 作者:HelloGitHub-**追夢人物** 歡迎來到 HelloVue-

GO語言從入門到高教程|Go語言視頻教程2018

Go語言區塊鏈開發零基礎必備技能之GO語言從入門到高級(go基礎、高級特性、區塊鏈概念、應用場景)網盤地址:https://pan.baidu.com/s/1Z0J3fAWR1Vgyzqrhe32eEA 密碼: tife備用地址(騰訊微雲):https://share.weiyun.com/5IBE6gQ 密

XCube和X元件的入門使用教程

我也是一個入門級的初學者,在學習魔方的時候,很多不是很懂的地方,而網上的資料又比較少。尤其是Newlife的論壇打不開的情況下 所以就想著把這個初級專案做完後,做一個入門級教程。保證人人都看得懂(。^▽^) 還有謝謝石頭老大,平哥還有熱心的群友(>人<;) 我用的Vs2017 .NetWork 版本 4

入門:GitHub和Git超超超詳細使用教程

GitHub和Git入門 考慮到大家以前可能對版本控制工具和Linux命令列工具都不瞭解,我寫了一個簡單的部落格來讓大家學會入門使用方法。 GitHub的簡單使用 第一步 建立GitHub賬號 2. 點選綠色按鈕Sign up for GitHub,填寫使用者名稱,郵件

IDEA入門使用教程(轉)

最智慧的IDE IDEA相對於eclipse來說最大的優點就是它比eclipse聰明。聰明到什麼程度呢?我們先來看幾個簡單的例子。 智慧提示重構程式碼 如果你寫的程式碼過於複雜,或者有更好的方式來替代你寫的程式碼,那麼IDEA會給你一個提示,告訴你還可以有更好的方式。如

IDEA入門使用教程----你怎麼還在用eclipse?

上個月,idea的使用量超越eclipse的訊息席捲了整個IT界,idea到底好在哪裡呢? 最智慧的IDE IDEA相對於eclipse來說最大的優點就是它比eclipse聰明。聰明到什麼程度呢?我們先來看幾個簡單的例子。 智慧提示重構程式

入門詳細USB移植教程

同上一篇MPU6050一樣,我還是寫一篇關於USB的帖子,在圈圈等玩USB的大神面前,我掌握的USB知識實在是九牛一毛,所以這篇帖子加上了入門級的修飾語。寫這篇帖子主要是為了那些想快速開發USB的人,至於想深入瞭解USB協議,可以先學完我這個再去看看別的高階教程可能會好點,雖