Fiddler的主界面分爲 工具面板、會話面板、監控面板、狀態面板html
兩種模式跨域
<1> Statistics---統計瀏覽器
<2> Timeline---時間軸緩存
每一個網絡請求都會經歷域名解析、創建鏈接、發送請求、接受數據等階段。把多個請求以時間做爲 X 軸,用圖表的形式展示出來,就造成了瀑布圖。在Fiddler中,只要在左側選中一些請求,右側選擇Timeline標籤,就能夠看到這些請求的瀑布圖安全
控制檯Fiddler的左下角有一個命令行工具叫作QuickExec,容許你直接輸入命令。
常見得命令有:服務器
命令cookie |
解釋網絡 |
help併發 |
打開官方的使用頁面介紹,全部的命令都會列出來composer |
cls |
清屏 (Ctrl+x 也能夠清屏) |
select |
選擇會話的命令 |
?.png |
用來選擇png後綴的圖片 |
bpu |
截獲request |
bpafter |
截獲response |
截包改包操做
1)全局斷點:中斷fiddler捕獲全部請求
第一步:rules-> automatic breakpoint ->before requests
第二步:選中before requests選項後,打開一個頁面看到T的標識,說明斷點成功
第三步:打完斷點後,會發現全部的請求都沒法發出去了,這時候,點下Go按鈕,就能走下一步了
第四步:找到須要修改的請求後,選中該條會話,右側打開WebFroms,這時候裏面的參數都是能夠修改的了
第五步:修改以後點Run to Completion就能提交了,因而就成功修改了請求參數了
清除斷點:rules-> automatic breakpoint ->disabled
2)bpu url在某個url發包時打斷點
bpu 清理掉已設置的斷點
3)rules裏面的breakpoint設置
1)
2)fiddler協議請求部分:
請求行:http方法 url http協議版本。
請求頭:請求行換行以後全部的鍵值對呈現的內容,直到下一個換行爲止。
請求體:請求頭空行以後,請求的主體內容,參數通常在這裏。
3)http協議返回部分:
返回行:第一行 協議版本和狀態碼
返回頭:返回行換行以後的頭域信息
返回體:空行以後獲得的返回主體
4)請求四大要素:
方法:http協議提供的方法,目前用得最多隻有get和post,在rest風格里面,其餘的幾種也會用上PUT DELETE PATCH OPTION
url:指示訪問的資源的地址
頭域(無關緊要):以鍵值對的形式呈現的在http請求過程當中的某些約定,大部分是由http協議本省就已經定義好,也有一些開發過程當中自定義的頭域。
參數:get方法就在url裏面,post方法能夠在請求體裏,content-type是x-www-form-urlencoded的時候,也能夠帶在url裏面
5)autoresponder:一般會用於mock測試,至關於模擬接口的正確返回
編寫rules,設置匹配請求的條件和想要的返回結果,當發起請求時,會獲得對應的設置結果
composer:fiddler的自定義發包功能,能夠完成一些簡單的接口調試測試,相似於postman
fiddlerscript:js的腳本,能夠進行弱網設置:
找到
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150";
}
修改上下行的延時
HTTP Request header
1)Cache頭域
if-Modified-since:緩存
if-None-Match:可提升性能(在Response中添加ETag信息,客戶端再次請求資源,Request中加入if-None-Match(ETag的值),服務器驗證ETag,若沒改變返回狀態碼304,有改變,返回狀態碼200)
Pragma:防止頁面被緩存
Cache-Control:Response—Request遵循的緩存機制
public:能夠被任何緩存所緩存
private:內容只緩存在私有緩存中
no-cache:全部內容都不會被緩存
2)Client頭域
Accept:瀏覽器能夠接受的文件類型(Accept:text/html 表示瀏覽器可接受服務器返回的文件類型爲text/html)
Accept-Encodig:指定壓縮方法,是否支持壓縮,支持什麼壓縮方法(gzip、deflate)
Accept-Language:瀏覽器申明本身的接收語言
User-Accept:告知服務器客戶端使用的操做系統與瀏覽器的名稱和版本
Accept-chareset:瀏覽器申明本身接收的字符集。如gb2312,UTF_8
3)Cookie/Login頭域
Cookie:將cookie的值發送給服務器
4)Entity頭域
Content-Length:發送給HTTP服務器的數據長度
Content-Type:決定文件接收方將以什麼形式、什麼編碼讀取此文件
5)Miscellaneous頭域
Referer:提供了Request的上下文信息,告訴服務器我是從哪一個連接過來的
A------>B(B的服務器從Referer中統計有多少用戶是從A過來的)
6)Transport頭域
connection:Keep—alive TCP鏈接不會關閉
connection:close 一個Request完成後,TCP鏈接關閉
7)Host:發送請求時,該報頭域是必需的。主要用於指定被請求資源的Internet主機和端口號,一般從HTTP URL 中提取出來
HTTP Response header
1)Cache頭域
Date:生成消息的具體時間和日期
Expires:瀏覽器在指定過時時間內使用本地緩存
2)Cookie/Login頭域
P3P:用戶跨域設置cookie,能夠解決iframe跨域訪問cookie的問題
Set-Cookie:重要的header,用於把cookie發送到客戶端瀏覽器,每個寫入cookie都會生成一個set-cookie
3)Entity頭域
ETag:與if-None-Match配合使用
Last-Modified:用於指示資源的最後修改日期和時間
Content-Type:Web服務器告知瀏覽器本身響應對象的類型和字符集
Content-Length:指明實體正文長度,以字節方式存儲的十進制數字表示。在數據下行中,要預先在服務器中緩存全部數據,而後全部數據一併發給客戶端
Content-Encoding:Web服務器代表本身用了什麼壓縮方式(gzip、deflate)壓縮響應中的對象
Content-Language:服務器告知瀏覽器本身響應的對象語言
4)Miscellaneous頭域
Server:指明HTTP服務器的軟件信息
X-Powered-By:代表網站是用什麼技術開發的
X-AspNet-Version:若是網站是用Asp/Net開發的,這個header用來代表Asp/Net的版本
5)Transport頭域
connection:Keep—alive TCP鏈接不會關閉
connection:close 一個Request完成後,TCP鏈接關閉
6)Location頭域
Location:用於重定向一個新的位置,包括新的URL地址
2.重啓瀏覽器
3.打開瀏覽器,訪問百度,出現以下圖的HTTPS包,說明配置成功
Fiddler配置代理配置
勾選箭頭處的配置,其餘的是默認的。固然,也看一下你的配置是否和圖一致。
點擊最右邊的小圖標,而後把鼠標放到Online上面。
2.注意,若是有多個ip,請禁用除當前上網使用網卡覺得的其餘全部網卡,保證只有一個ip
以Win10爲例:右鍵網絡,打開Internet設置;找到以太網,點擊更改適配器設置;我當前使用以太網上網,因此關閉除以太網之外的其餘全部網卡
3.重啓fiddler,以後,咱們的代理服務器就只有一個ip了
4.在瀏覽器中訪問:http://192.168.2.191:8888/
注意,ip是你的代理服務器ip。出現以下界面,說明配置ok了
移動端代理配置
2.在你當前鏈接的WiFi裏面找到高級設置
不同的手機,打開方式不同,這裏敬請百度一下
3.在高級裏面找到代理,以下圖配置代理
找到代理,在代理下面選擇手動。再在以後的界面輸入:fiddler服務器的ip,以及上面配置的8888端口
4.從新鏈接WiFi
5.瀏覽器訪問http://192.168.2.191:8888/
6.點擊上圖中的箭頭處,下載fiddler證書
7.到你的下載文件夾下面找到剛剛下載的證書,並點擊安裝
安裝的時候,須要輸入鎖屏密碼
8.在安裝界面,給證書輸入名字:fiddler,而後點擊肯定
9.提示安裝成功以後,移動端代理抓包就配置完成了。這時候你再訪問百度,就不會提示證書不安全