2022最新版??Fiddler抓包教程(1) 初識Fiddler+HTTP基礎(chǔ)知識 ?? (圖文匯總)

作者: 極客小俊
一個把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主

Fiddler 抓包專題.png

前言

居然有人干了5年開發(fā)辨萍,抓包都不會!??

但是不要怕近忙,不要哭骄酗,跟著我學一定有收獲! 興趣就是你最好的老師邦邦,有興趣就一定要學下去 ,卷死他們!??

溫馨提示:全程干貨安吁、內(nèi)容比較多,建議新手朋友可以先點贊+收藏再慢慢觀看! ??

Fiddler是什么?

在正式學習Fiddler之前燃辖, 我們還是要對Fiddler有一個初步的認識!

Fiddler是以web proxy代理服務器的形式工作的 , 它也是一個http協(xié)議數(shù)據(jù)抓包與調(diào)試代理工具鬼店,它能夠記錄檢查當前你的電腦和互聯(lián)網(wǎng)之間的http消息, 也就是說可以將網(wǎng)絡(luò)傳輸發(fā)送與接受數(shù)據(jù)包進行截獲、重發(fā)黔龟、編輯妇智、轉(zhuǎn)存等操作 還可以用來檢測網(wǎng)絡(luò)安全魂迄。 是不是感覺很強大!??

Fiddler主要能干什么?

work.png

Fiddler是一個客戶端服務端的一個http代理工具 , 客戶端服務端彼此之間的交流都可以被Fiddler所監(jiān)聽到!

Fiddler不僅僅是一款非常強大的抓包工具剑勾,還是一款web調(diào)試的利器

它能夠?qū)崿F(xiàn)以下功能:

  1. 監(jiān)控我們瀏覽器所有的http/https的信息和流量,也就是所有的請求黍少,所有的流量都可以監(jiān)聽
  2. 當監(jiān)聽截取到http請求之后蛋欣,就可以做一些查看 分析瀏覽器請求的內(nèi)容細節(jié),就可以偽造一些請求 偽造一個服務器的響應都是可以的!
  3. 還可以測試網(wǎng)站的性能
  4. 解密https的web會話
  5. 全局航徙、局部斷點功能!

Fiddler的應用場景也很廣泛

  1. 接口測試
  2. 接口調(diào)試
  3. 線上環(huán)境調(diào)試
  4. web項目性能分析
  5. 前后端bug監(jiān)測
  6. 弱網(wǎng)斷網(wǎng)監(jiān)測
  7. hosts配置監(jiān)測
  8. mock模擬測試

要知道Fiddler作為系統(tǒng)代理,所有的來自微軟互聯(lián)網(wǎng)服務的http請求在到達目標Web服務器之前都會經(jīng)過Fiddler陷虎,同樣的到踏,所有的Http響應都會在返回客戶端之前也會經(jīng)過Fiddler

為什么要學習Fiddler?

因為我們做開發(fā)必然要和http打交道對吧尚猿, 并且還有一些新手朋友也要學習http的相關(guān)知識窝稿,但是http的知識點比較多和雜亂,如果你沒有一個看得見摸的著數(shù)據(jù)參照,是很難去把控http信息, 那么要理解http協(xié)議凿掂,我個人建議可以先從抓包工具開始從淺入深的形式慢慢了解http以及Fiddler這款抓包工具的使用

所以不管你是分析http還是剛剛學習http的朋友 ,都可以先學習一下Fiddler抓包工具!

并且在windows系統(tǒng)下只要一提到抓包肯定首選的就是Fiddler

總之學習了Fiddler之后伴榔,會讓你對http的理解更上一層樓!

下載Fiddler

官方下載地址

https://www.telerik.com/download/fiddler

填寫好電子郵箱國家地區(qū) 點擊Download for windows就可以下載了

如圖

down.png

注意 這個Fiddler工具是基于.NET Framework的 ,因為Fiddlerc#開發(fā)的

如果是比較老的windows系統(tǒng)要保證運行環(huán)境!??

Fiddler的安裝方法也很簡單 獲取到安裝包之后,直接選擇安裝路徑 或 無腦下一步就可以了!??

安裝成功會顯示如下界面!

setup.png

軟件體系結(jié)構(gòu)—B/S 與 C/S架構(gòu)

B/S架構(gòu)

在了解Fiddler原理之前,還先清楚我們web最基本的架構(gòu)是什么缠劝,就是B/S架構(gòu), 它也是目前最常用的一種軟件架構(gòu)

B就是瀏覽器(Browsers) 也就是客戶端 這邊

S就是服務器端(Server)也就是web服務器這邊

我們平常的web服務潮梯、web項目骗灶、web應用都是運行在服務端的, 那么通過綁定ip地址+端口監(jiān)聽的形式來接收和處理一些前端也就是客戶端發(fā)起的http請求, 從而客戶端通過http協(xié)議和請求就可以獲取到指定服務器上的頁面 文件 資源惨恭、等等..

如圖

bs.jpg

舉個例子

當你在瀏覽器地址欄上輸入百度的地址之后,服務器端就會給你返回一個百度的html頁面資源

總結(jié)

B/S架構(gòu)就是瀏覽器/服務器的一種交互模式耙旦,是Browser/Server的簡稱脱羡。

并且這種架構(gòu)的軟件不需要在用戶的電腦上安裝任何客戶端程序萝究,只需要在用戶的電腦上安裝瀏覽器即可。

用戶僅僅使用瀏覽器通過web服務器和數(shù)據(jù)庫做交互锉罐,交互的結(jié)果將會以html網(wǎng)頁的形式顯示在瀏覽器上帆竹。

C/S架構(gòu) [了解]

出了我們的B/S架構(gòu),其實還有一種就是C/S架構(gòu)客戶端/服務端的一種交互模式脓规,是Client/Server的簡稱栽连。它是早期常用的一種軟件架構(gòu),這種架構(gòu)的軟件需要在用戶的電腦上安裝客戶端程序, 有興趣的朋友可以自行了解侨舆,這里就不過多贅述了!

我們平常在進行軟件開發(fā)時秒紧,通常會根據(jù)需求在兩種基本架構(gòu)中進行選擇!

HTTP 基礎(chǔ)知識

學習Fiddler的時候,HTTP的知識點也是必不可少的, 所以這里必須要給大家簡單的介紹一下HTTP的相關(guān)知識!

http中文意思為超文本傳輸協(xié)議 英文全稱為Hyper Text Transfer Protocol

它是用于萬維網(wǎng)服務器傳輸超文本到本地瀏覽器的一種傳輸協(xié)議

目的是保證客戶端服務端之間的通信

什么是http請求和響應?

http的工作方式為一個簡單的客戶端請求 與 服務端響應的應答過程

它指定了客戶端發(fā)送給服務器什么樣的消息形式以及得到什么樣的消息響應

所有的www文件都必須遵循這個標準協(xié)議, 目的是提供一種發(fā)布和接收html頁面的方法

舉個例子

比如說 客戶端(瀏覽器)服務器提交一個http請求, 那么服務器又會向客戶端這邊返回響應信息。而這些響應信息包含關(guān)于客戶端請求的狀態(tài)信息以及客戶端所需要的內(nèi)容信息挨下。

如圖

http_1.png

http協(xié)議和web之間的本質(zhì)

其實就是瀏覽器服務器打交道的

客戶端服務器端發(fā)送Http請求,然后服務器端客戶端返回http響應!

http協(xié)議就是瀏覽器服務器之間進行溝通的一種規(guī)范, 也就是以這個規(guī)范來向服務器發(fā)起請求, 服務器才會給客戶端進行正確的響應, 所以http有的時候也可以理解為是一種 規(guī)范熔恢、規(guī)則、標準

http協(xié)議是屬于應用層的協(xié)議,而且是基于TCP/IP協(xié)議的, 也就是說http通信發(fā)生在TCP/IP鏈接之上

通俗一點說http協(xié)議就是基于TCP的一種應用層協(xié)議 它不會關(guān)系數(shù)據(jù)傳輸?shù)募毠?jié)問題,也就是說你不用去關(guān)心它下層TCP的運行邏輯, 它的核心只在于用來規(guī)定客戶端和服務端的數(shù)據(jù)傳輸格式

最早http是用來向客戶端傳輸html文件內(nèi)容,默認的端口80

擴展

有興趣的朋友可以自行了解一下iso網(wǎng)絡(luò)七層模型

通俗點說http臭笆,就是在請求和響應之后叙淌,服務器端立即關(guān)閉連接,并釋放資源愁铺,這樣既保證了資源可顯示與可用性鹰霍,也吸取了TCP協(xié)議的可靠性優(yōu)點,但是缺點就無法跟蹤用戶的操作了,所以我們在后端開發(fā)的學習中才會接觸一個東西叫session和cookie技術(shù)

所以你也可以理解為http是基于請求與響應的模式, 并且是無狀態(tài)的應用層協(xié)議

http請求和響應的基本原理

任何一個http請求都只會分為兩個部分: 一個請求報文另外一個是響應報文

請求報文客戶端按照一定的格式生成一段文本,然后發(fā)給我們的服務端, 而服務器接收到了這樣一個請求報文就會解析里面的內(nèi)容,然后做出回饋,也就是響應

響應報文也就是服務器端根據(jù)請求報文反饋給客戶端的文本信息

http請求報文 (request)基本結(jié)構(gòu)

http請求(request)也叫請求報文一個基本的http請求報文結(jié)構(gòu)分為如下幾點:

  1. 請求行:就是請求方式和協(xié)議,也就是說用于描述客戶端請求方式,例如post/get方式, 以及請求的資源名稱和HTTP協(xié)議的版本號!
  2. 若干個請求頭: 這些也叫消息頭告訴服務器發(fā)送的是什么數(shù)據(jù)類型茵乱,編碼類型衅谷、請求的是哪臺主機、以及客戶端瀏覽器的一些系統(tǒng)環(huán)境 等等似将, 這些消息頭中有很多頭部字段名對應的值它的格式為 name:value
  3. 空白行
  4. 請求正文內(nèi)容

抓包了解一下

那么我們在學習http知識的時候 就可以先直接使用Fiddler來抓取一個http請求http響應來先看看到底是什么東西!

這樣也有助于一些新手來理解http!

我們可以通過Fiddler抓取網(wǎng)絡(luò)數(shù)據(jù)包的手段获黔,就可以看到一個基本的http請求結(jié)構(gòu)都包含哪些信息!

例如一個GET方式請求(Request)信息 如下:

GET https://www.baidu.com/?name=zhangsan HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9


例如一個POST方式請求(Request)信息 如下:

POST https://api.codelife.cc/stat/userHm HTTP/1.1
Host: api.codelife.cc
Connection: keep-alive
Content-Length: 48
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Content-Type: application/json
Accept: application/json, text/plain, */*
sec-ch-ua-platform: "Windows"
version: 1.2.27
Origin: chrome-extension://mhloojimgilafopcmlcikiidgbbnelip
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

{"fp":"4c49c2fd79e1658546e4b8ad","tn":6}

怎么樣 是不是看這一大堆腦殼都大了呢 ? 哈哈哈不要著急在验,我們慢慢來學!??????

我們先來看一張請求(Request)圖解

如圖

request_1.jpg

然后我們來逐一拆解上圖中的各個部分!

1.請求方式 (Request method)

我們常見的一些請求方式也就是POST/GET,當然還有其他的一些請求方式, 如下表:

請求方法 描述
GET 請求資源 比如常見的就是輸入一個URL去請求一個資源下來, 它也可以帶上一定的參數(shù)一起請求
POST 提交資源 比如說我們想把用戶名和密碼 提交到服務器去,這個時候用POST比較好
HEAD 獲取響應頭
PUT 替換資源
DELETE 刪除資源
OPTIONS 允許客戶端查看服務器的性能
TRACE 顯示服務器收到的請求 常見于測試和調(diào)試診斷!
2.URL (Uniform Resource Locator)

URL中文名為統(tǒng)一資源定位符 英文全稱Uniform Resource Locator ,

我們網(wǎng)絡(luò)中的每一信息資源都有統(tǒng)一的且在網(wǎng)上唯一的地址!

URL具體由4部分組成:協(xié)議玷氏、主機、域名腋舌、端口盏触、路徑文件、[附加資源]

URL的一般語法格式為:

protocol :// hostname[:port] / path / [?query-parameters]

1.協(xié)議 (protocol)

協(xié)議有http块饺、ftp赞辩、https、等...

2.主機名 (hostname) + 域名

主機名+域名 例如: www.xsphp.com

3.端口 (port)

端口是一個數(shù)字, 端口是可選的 省略時使用方案是服務器默認配置的端口

例如 80授艰、8080辨嗽、..

各種傳輸協(xié)議都有默認的端口號,如http協(xié)議的默認端口為80

如果URL地址省略端口淮腾,則使用默認端口號

注意

有時候出于安全或其他考慮糟需,可以在服務器配置上對端口進行重新定義屉佳,也就是采用非標準端口號,那么此時洲押,URL地址中就不能省略端口號這一項武花。

4.路徑文件 (path)

由零或多個/符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址

例如: /tpl/index.php

5.查詢參數(shù) 附加資源 (query-parameters)

這一項在URL中也是可選的 用于給動態(tài)網(wǎng)頁如 PHP/JSP/ASP/ASP.NET等后端頁面 傳遞參數(shù)的一種方式杈帐,并且如果是GET請求方法, 那么可有多個參數(shù), 它們彼此用&符號隔開体箕,每個參數(shù)的名和值用=符號隔開

語法格式: ?參數(shù)=值&參數(shù)2=值 以此類推!

例如: ?id=33&age=25&name=zhangsan

舉個例子

一個比較常見的url地址, 如下:

https://www.xxxx.net/xxxx/xxxx/xxxx/100?num=1001.2014.3001.5501
3.請消息求頭 (Request Header)

請求消息頭也叫消息頭告訴服務器發(fā)送的是什么數(shù)據(jù)類型挑童,編碼類型干旁、請求的是哪臺主機、以及客戶端瀏覽器的一些系統(tǒng)環(huán)境 等等前面已經(jīng)說過了, 并且請求頭是可以由開發(fā)人員根據(jù)需求去進行自定義

這些消息頭中有很多頭部字段名對應的值它的格式為 name:value

我們常見的一些請求頭如下表:

請求頭 描述
Host 主機IP地址或域名
User-Agent 提交一些客戶端相關(guān)信息炮沐,例如: 操作系統(tǒng)争群、瀏覽器等一些版本信息給服務器, 而這些信息可能會讓服務器按照一定的規(guī)則給客戶端返回兼容性比較好的信息!
Accept 指定客戶端接收的信息類型,<br />例如:image/jpg,text/html,application/json<br />也就是可以讓客戶端告訴服務器 之后客戶端這一邊想接收到什么樣的數(shù)據(jù)格式
Accept-Charset 告訴服務器等一會這邊客戶端需要接收的字符集編碼格式大年, <br />例如:gb2312换薄、iso-8859-1、utf-8
Accept-Encoding 告訴服務器翔试, 客戶端這邊可接受的內(nèi)容壓縮編碼轻要,例如gzip 可以在一定程度上節(jié)省流量!
Accept-Language 告訴服務器, 客戶端可接受的語言,例如Accept-Language:zh-cn
Authorization 客戶端提供給服務端進行權(quán)限認證的信息, 也就是要告訴服務器端一些認證的信息垦缅,服務器才能返回響應的數(shù)據(jù)!
Cookie 攜帶的COOKIE信息, 普通情況下冲泥,當一個用戶登錄成功,就會在本地保存一份cookie,下次請求就會直接帶上這個cookie信息壁涎,也就是這個用戶的相關(guān)信息
Referer 當前文檔的URL 也就是紀錄下從哪個鏈接地址提交到服務器
Content-Type 服務器提交內(nèi)容的格式<br />例如:Content-Type:application/x-www-form-urlencoded<br />總而言之,就是告訴服務器,客戶端傳遞的內(nèi)容屬于什么格式 或 其他編碼格式!
Content-Length 數(shù)據(jù)長度, 也就是客戶端服務器端提交內(nèi)容的數(shù)據(jù)長度有多少字節(jié)!
Cache-Control 緩存機制凡恍,例如:Cache-Control:no-cache
pragma 防止頁面被緩存,與Cache-Control:no-cache作用一樣
..............................................

我們可以用Fiddler截取一個請求頭看看

如圖

request_2.png
4.空行

空白行 也就是在消息頭結(jié)束的下方怔球,會存在一個空白行, 這是必須存在的, 是由HTTP標準規(guī)定的!

5.請求體

請求體它的出現(xiàn)是要根據(jù)請求的方式不同而不同, 也就是如果是POST那么就會以鍵與值的形式進行發(fā)送, 如果是GET請求那么這里就不會包含請求正文內(nèi)容


http響應報文 (Response)基本結(jié)構(gòu)

http響應(response)也叫響應報文

其實響應報文請求報文更加簡單, 你只要能夠搞懂請求報文 那么響應報文就很容易搞懂!

http響應(response)的一個基本結(jié)構(gòu)分為如下幾點:

  1. 響應行
  2. 響應頭
  3. 空白行
  4. 響應體

我們可以通過Fiddler抓取網(wǎng)絡(luò)數(shù)據(jù)包的手段嚼酝,就可以看到一個基本的http響應結(jié)構(gòu)都包含哪些信息!

舉個例子

Response_0.png

如果你還看不明白 那么我們先來看一張http響應(response)圖解 你就會明白了!

Response_1.jpg

然后我們來逐一拆解上圖中的各個部分!

1.響應行

響應行也叫狀態(tài)行, 上圖中響應行內(nèi)部其實包含了3個重要的信息部分:

HTTP協(xié)議的版本竟坛、HTTP狀態(tài)碼闽巩、HTTP的狀態(tài)描述

1.HTTP協(xié)議的版本現(xiàn)目前都是HTTP/1.1 版本 這個沒什么好說的!

2.HTTP狀態(tài)碼 可以用來表示網(wǎng)頁服務器端給客戶端返回的HTTP響應狀態(tài), 通常都是3位數(shù)字的代碼, 而這些常見的狀態(tài)碼又可以分為幾種提示類型: ?? 如下表

類別狀態(tài)碼 描述
1xx 這種類別的狀態(tài)碼提示消息類型 通常表示請求被服務器端成功接收
2xx 這種類別的狀態(tài)碼成功消息類型通常表示請求被服務器端成功處理
3xx 這種類別的狀態(tài)碼重定向類型通常表示被服務器端重新定義了請求方向,需要進一步的操作以完成請求
4xx 這種類別的狀態(tài)碼客戶端錯誤信息通常表示服務器告訴客戶端的一些錯誤消息
5xx 這種類別的狀態(tài)碼服務端錯誤信息通常表示告訴客戶端 服務器這邊出現(xiàn)的一些錯誤信息

3.HTTP的狀態(tài)描述是緊跟在狀態(tài)碼后面的英文單詞

每一種具體類別狀態(tài)碼+狀態(tài)描述可以參考下表:

1xx: 提示消息類型

消息: 狀態(tài)描述 含義
100 Continue 服務器僅接收到部分請求,但是一旦服務器并沒有拒絕該請求担汤,客戶端應該繼續(xù)發(fā)送其余的請求涎跨。
101 Switching Protocols 服務器轉(zhuǎn)換協(xié)議:服務器將遵從客戶的請求轉(zhuǎn)換到另外一種協(xié)議。

2xx: 成功消息類型

消息: 狀態(tài)描述 含義
200 OK 請求成功(其后是對GET和POST請求的應答文檔崭歧。)
201 Created 請求被創(chuàng)建完成隅很,同時新的資源被創(chuàng)建。
202 Accepted 供處理的請求已被接受驾荣,但是處理未完成外构。
203 Non-authoritative Information 文檔已經(jīng)正常地返回,但一些應答頭可能不正確播掷,因為使用的是文檔的拷貝审编。
204 No Content 沒有新文檔。瀏覽器應該繼續(xù)顯示原來的文檔歧匈。如果用戶定期地刷新頁面垒酬,而Servlet可以確定用戶文檔足夠新,這個狀態(tài)代碼是很有用的件炉。
205 Reset Content 沒有新文檔勘究。但瀏覽器應該重置它所顯示的內(nèi)容。用來強制瀏覽器清除表單輸入內(nèi)容斟冕。
206 Partial Content 客戶發(fā)送了一個帶有Range頭的GET請求口糕,服務器完成了它。

3xx: 重定向類型

消息: 狀態(tài)描述 含義
300 Multiple Choices 多重選擇磕蛇。鏈接列表景描。用戶可以選擇某鏈接到達目的地。最多允許五個地址秀撇。
301 Moved Permanently 所請求的頁面已經(jīng)轉(zhuǎn)移至新的url, 說通俗一點表示請求的資源分配了url超棺,以后就應該使用這個url
302 Found 所請求的頁面已經(jīng)臨時轉(zhuǎn)移至新的url, 也就是說請求的資源臨時分配了url,本次請求暫且使用這個url呵燕, 這里302與301的區(qū)別是棠绘,302表示臨時性重定向,重定向的url還有可能還會改變再扭。
303 See Other 表示請求的資源路徑發(fā)生改變氧苍,請使用GET方法請求url。其實與302一樣泛范,但是明確指出讓我們使用GET方法請求url
304 Not Modified 未按預期修改文檔候引。客戶端有緩沖的文檔并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)敦跌。服務器告訴客戶澄干,原來緩沖的文檔還可以繼續(xù)使用。
305 Use Proxy 客戶請求的文檔應該通過Location頭所指明的代理服務器提取柠傍。
306 Unused 此代碼被用于前一版本麸俘。目前已不再使用,但是代碼依然被保留惧笛。
307 Temporary Redirect 被請求的頁面已經(jīng)臨時移至新的url从媚。

4xx: 客戶端錯誤信息

消息: 狀態(tài)描述 含義
400 Bad Request 服務器未能理解請求,通常為表示請求的報文中存在語法錯誤 患整,比如: 提交json數(shù)據(jù)的時候拜效,如果json格式有問題喷众,接收端接收json,也會出現(xiàn)400 bad request
401 Unauthorized 被請求的頁面需要用戶名和密碼紧憾。
402 Payment Required 此代碼尚無法使用到千。
403 Forbidden 對被請求頁面的訪問被禁止。
404 Not Found 服務器無法找到被請求的頁面赴穗。
405 Method Not Allowed 請求中指定的方法不被允許, 請求的方式get憔四、post、delete方法與后臺規(guī)定的方式不符合 例如: 比如: 后臺方法規(guī)定的請求方式只接受get般眉,如果用post請求了赵,就會出現(xiàn) 405 method not allowed的提示
406 Not Acceptable 服務器生成的響應無法被客戶端所接受。
407 Proxy Authentication Required 用戶必須首先使用代理服務器進行驗證甸赃,這樣請求才會被處理柿汛。
408 Request Timeout 請求超出了服務器的等待時間。
409 Conflict 由于沖突埠对,請求無法被完成苛茂。
410 Gone 被請求的頁面不可用。
411 Length Required "Content-Length" 未被定義鸠窗。如果無此內(nèi)容妓羊,服務器不會接受請求。
412 Precondition Failed 請求中的前提條件被服務器評估為失敗稍计。
413 Request Entity Too Large 由于所請求的實體的太大躁绸,服務器不會接受請求。
414 Request-url Too Long 由于url太長臣嚣,服務器不會接受請求净刮。當post請求被轉(zhuǎn)換為帶有很長的查詢信息的get請求時,就會發(fā)生這種情況硅则。
415 Unsupported Media Type 由于媒介類型不被支持淹父,服務器不會接受請求, 例如: 后臺程序不支持提交的content-type類型,就會返回415
416 服務器不能滿足客戶在請求中指定的Range頭怎虫。
417 Expectation Failed

5xx: 服務器錯誤信息

消息: 狀態(tài)描述 含義
500 Internal Server Error 請求未完成暑认。服務器遇到不可預知的情況。
501 Not Implemented 請求未完成大审。服務器不支持所請求的功能蘸际。
502 Bad Gateway 請求未完成。服務器從上游服務器收到一個無效的響應徒扶。
503 Service Unavailable 請求未完成粮彤。服務器臨時過載或當機。
504 Gateway Timeout 網(wǎng)關(guān)超時。
505 HTTP Version Not Supported 服務器不支持請求中指明的HTTP協(xié)議版本导坟。
2.響應頭 (Response Header)

響應頭也叫消息報頭 也就是服務器端要告訴客戶端的一些附加信息, 但是也有可能這些響應頭是由后端開發(fā)人員進行自定義的!

而且這里的響應頭請消頭 很類似, 格式也基本一樣, 它的格式為 name:value

具體我這里也列舉了一些常見的響應頭 如下表:

響應頭 含義
Server HTTP服務器的軟件信息
Date 響應報文的時間, 要注意返回時間的時區(qū)
Expiros 服務器指定的一個緩存過期時間
Set-Cookie 設(shè)置Cookie, 也就是服務器返回的一段文本給客戶端,讓客戶端保存好,下次請求就把這個cookie文本帶上!
Last-Modified 資源最后修改時間 屿良,也就是客戶端有緩沖的文檔并發(fā)出了一個條件性的請求, 服務器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用, 也就是說不用在從服務器中進行返回
Content-Type 服務器返回給客戶端的響應類型和編碼字符集<br />例如:Content-Type:text/html;charset=utf-8
Content-Length 內(nèi)容長度, 也就是服務器返回給客戶端返回的內(nèi)容是多少字節(jié)
Connection 例如Keep-Alive惫周,表示保持tcp鏈接不會關(guān)閉尘惧,當然它不會永久保持鏈接,我們在服務器端中是可以設(shè)置的
Location 指明服務器客戶端重定向的位置闯两,也就是新的URL地址 如:304的情況
......................................

還有更多的響應頭這里就不一一列舉了!

3.空白行

空白行也就是http規(guī)范制定的必須存在的一個空行, 空行的目的就是一種格式褥伴,也就是要告訴用戶接下來的內(nèi)容就是正文內(nèi)容了!

4.響應體

響應體也就是實際從服務器返回給客戶端的正文內(nèi)容,也可能是一些字符串谅将, 也可以是任意的格式:

響應體大多數(shù)情況下都是html漾狼、json、文本饥臂、xml 這些格式!

小結(jié)

對于http相關(guān)的的知識點 就說這么多了,對于學習fiddler足夠了

接下來你就可以愉快的學習Fiddler了??


Fiddler運行原理

Fiddler的原理簡單點說就是通過改寫HTTP代理然后讓網(wǎng)絡(luò)數(shù)據(jù)Fiddler這邊通過 這樣子來監(jiān)控并且截取到網(wǎng)絡(luò)信息數(shù)據(jù)逊躁。當你打開Fiddler的時候, 就已經(jīng)設(shè)置好了瀏覽器的代理了。當你關(guān)閉的時候隅熙,它會自動的幫你把代理還原

之前也說過了 B/S架構(gòu)就是客戶端服務器之間的 請求和響應, 剛剛我們也知道了Fiddler通過代理的形式來進行監(jiān)聽稽煤,它在請求和響應中起到一個什么樣的角色呢?

這里還要清楚一點的就是 瀏覽器默認走的是我們的系統(tǒng)代理

其實這里的代理監(jiān)聽 就是在 請求和響應之間插了一腳, 讓fiddler成為系統(tǒng)代理

在你安裝好Fiddler之后啟動,并可以打開菜單欄中的Tools--->options--->Connections

如下圖

fiddler_1.png

看到了吧,這里有一句Act as system proxy on startup意思就是(在啟動時充當系統(tǒng)代理),并且默認監(jiān)聽端口設(shè)置為了8888

如圖

fiddler_2.png

這里以chrome瀏覽器為例:

只要fiddler一旦啟動并開始監(jiān)聽的時候囚戚,就會默認成為系統(tǒng)代理, 所以你的網(wǎng)絡(luò)請求 也就會被fiddler所抓取到!

如圖

fiddler_3.jpg

或者如下圖一樣Fiddler就是一個中間的proxy(代理服務器)

fiddler_3-3.png
fiddler_4.png

當關(guān)閉fiddler的時候酵熙,手動設(shè)置代理選項就會被清空

所以我們才會說Fiddler是介于客戶端服務器中間的一個角色, 監(jiān)控客戶端服務器所有通信的過程!

小結(jié)

Fiddler是以代理WEB服務器的形式工作的,瀏覽器與服務器之間通過建立TCP連接以HTTP協(xié)議進行通信,

瀏覽器默認通過自己發(fā)送HTTP請求服務器驰坊,本地使用代理地址:127.0.0.1, 端口:8888.

而當Fiddler開啟會自動設(shè)置系統(tǒng)代理匾二, 退出的時候它會自動注銷代理,這樣就不會影響別的程序拳芙。

但是如果Fiddler非正常退出察藐,這時可能會因為Fiddler沒有自動注銷,而會造成網(wǎng)頁無法訪問舟扎。

解決的辦法是重新啟動下Fiddler就可以了, 這也是有很多新手安裝了Fiddler之后導致一些網(wǎng)絡(luò)無法訪問的原因之一!

如果我的博客對你有幫助分飞、如果你喜歡我的博客內(nèi)容,請 “點贊” “評論” “收藏” 一鍵三連哦睹限!


如果以上內(nèi)容有任何錯誤或者不準確的地方譬猫,歡迎在下面 ?? 留個言指出、或者你有更好的想法羡疗,歡迎一起交流學習??????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末删窒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子顺囊,更是在濱河造成了極大的恐慌肌索,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诚亚,居然都是意外死亡晕换,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門站宗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸准,“玉大人,你說我怎么就攤上這事梢灭∫募遥” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵敏释,是天一觀的道長库快。 經(jīng)常有香客問我,道長钥顽,這世上最難降的妖魔是什么义屏? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蜂大,結(jié)果婚禮上闽铐,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布捣染。 她就那樣靜靜地躺著艳吠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音扎瓶,去河邊找鬼。 笑死泌枪,一個胖子當著我的面吹牛概荷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碌燕,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼误证,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了修壕?” 一聲冷哼從身側(cè)響起愈捅,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慈鸠,沒想到半個月后蓝谨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年譬巫,在試婚紗的時候發(fā)現(xiàn)自己被綠了咖楣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡芦昔,死狀恐怖诱贿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咕缎,我是刑警寧澤珠十,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站凭豪,受9級特大地震影響焙蹭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜墅诡,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一壳嚎、第九天 我趴在偏房一處隱蔽的房頂上張望桐智。 院中可真熱鬧末早,春花似錦、人聲如沸说庭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刊驴。三九已至姿搜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捆憎,已是汗流浹背舅柜。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躲惰,地道東北人致份。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像础拨,于是被迫代替她去往敵國和親氮块。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容