Fiddler 簡介
Fiddler 是位于客戶端和服務器端的 HTTP 代理
目前最常用的 http 抓包工具之一
功能非常強大,是 Web 調試的利器
關注+轉發+私信【軟件測試】領取Fiddler安裝包和配套學習資料
- 監控瀏覽器所有的 HTTP/HTTPS 流量
- 查看、分析請求內容細節
- 偽造客戶端請求和服務器響應
- 測試網站的性能解密 HTTPS 的 Web 會話
- 全局、局部斷點功能
- 第三方插件
場景使用場景
- 接口調試、接口測試、線上環境調試、Web 性能分析
- 判斷前后端 bug、開發環境 hosts 配置、mock、弱網斷網測試
B/S 架構
編寫程序部署到 Web 服務器
Web 服務器運行在服務器上,綁定 ip 地址并監聽某端口,接收和處理 http 請求
客戶端通過 http 協議獲取服務器上的網頁、文檔等
工作原理
HTTP
Hyper Text Transfer Protocol(超文本傳輸協議)
用于從萬維網服務器傳輸超文本到本地瀏覽器的傳送協議
HTTP 協議是基于 TCP 的應用層協議,它不關心數據傳輸的細節,主要是用來規定客戶端和服務端的數據傳輸格式,最初是用來向客戶端傳輸 html 頁面的內容。默認端口是 80
http 是基于請求與響應模式的、無狀態的、應用層的協議
完整的 HTTP 協議
完整的 http 協議包含請求和響應兩塊內容
HTTP 請求報文
HTTP 請求報文主要由請求行、請求頭部、空一行、請求正文(請求體)4 部分組成
如下是 fiddler 某個會話的請求報文
請求方法( Request Method)
請求方法 |
備注 |
GET |
請求資源 |
POST |
提交資源 |
Head |
獲取響應頭 |
PUT |
替換資源 |
DELETE |
刪除資源 |
OPTIONS |
允許客戶端查看服務器的性能 |
TRACE |
回顯服務器收到的請求,用于測試或診斷 |
URL
Uniform Resource Locator:統一資源定位符,用于描述網上的資源
格式:schema://host[:port#]/path/.../[?query-string]
scheme:協議,如 http,https,ftp 等
host:域名或者 IP 地址
port:端口
path:資源路徑
query-string:發送的參數
如:https://www.baidu.com/s?wd=檸檬班
請求頭(Request Header)
請求頭 |
描述 |
Host |
主機 ip 地址或域名 |
User-Agent |
客戶端相關信息,如果操作系統、瀏覽器等信息 |
Accept |
指定客戶端接收信息類型,如:image/jpg,text/html,Application/json |
Accept-Charset |
客戶端接受的字符集,如 gb2312、iso-8859-1 |
Accept-Encoding |
可接受的內容編碼,如 gzip |
Accept-Language |
接受的語言,如 Accept-Language:zh-cn |
Authorization |
客戶端提供給服務端,進行權限認證的信息 |
Cookie |
攜帶的 cookie 信息 |
Referer |
當前文檔的 URL,即從哪個鏈接過來的 |
Content-Type |
請求體內容類型,如 Content-Type: |
Content-Length |
數據長度 |
Cache-Control |
緩存機制,如 Cache-Control:no-cache |
Pragma |
防止頁面被緩存,和 Cache-Control:no-cache 作用一樣 |
HTTP 響應報文
HTTP 響應報文主要由狀態行、消息報頭、空一行、響應正文 4 部分組成
如下是 fiddler 某個會話的響應報文
狀態碼(Status Code)
用以表示網頁服務器 HTTP 響應狀態的 3 位數字代碼
狀態碼 |
描述 |
1XX |
提示信息,請求被成功接收 |
2XX |
成功,請求被成功處理 200 |
3XX |
重定向相關 304 |
4XX |
客戶端錯誤 404 |
5XX |
服務器端錯誤 500 |
響應頭(Response Header)
響應頭 |
描述 |
Server |
HTTP 服務器的軟件信息 |
Date |
響應報文的時間 |
Expires |
指定緩存過期時間 |
Set-Cookie |
設置 Cookie |
Last-Modified |
資源最后修改時間 |
Content-Type |
響應的類型和字符集,如:Content-Type: text/html; charset=utf-8 |
Content-Length |
內容長度 |
Connection |
如 Keep-Alive,表示保持 tcp 連接不關閉,不會永久保持連接,服務器可設置 |
Location |
指明重定向的位置,新的 URL 地址,如 304 的情況 |
GET 請求
格式 http://host:port/path?xx=aa&yy=bb
如:
http://120.78.128.25:8080/futureloan/mvc/api/member/register?mobilephone=13555555528&pwd=123456
說明:
- http/https:協議類型
- host:服務器主機 ip 地址或域名
- port:端口號,如果是 80 可以省略,其它端口必須指明
- path:訪問資源的路徑
- ?:分隔符,用于區別 path 和參數
- xx=aa、yy=bb:請求參數列表
- &:多個參數的連接符號
關注+轉發+私信【軟件測試】領取Fiddler安裝包和配套學習資料
總結
機會只垂青有準備的人,這是一個靠本事的社會。有時候,你之所以發展得不好,不是因為沒有機遇,而是因為你沒有準備好,導致機遇與你擦肩而過。如果你想要學習,什么時候開始都不晚,而不是瞻前顧后,你只要用盡全力,剩下的交給時間!