http(第七周):
fiddler(導航欄的‘請求編輯’):
1.請求方法:
1.1請求方法:
a.get:
1.用途:請求一個指定的資源。
2.特點:只應用于檢索數據,不應產生任何副作用。請求是冪等的(多次執行效果相同)且可被緩存。
b.post:
1.用途:向指定資源提交數據。
2.特點:通常用于創建新資源或執行一個會改變服務器狀態的操作(如提交表單)。不是冪等的,通常不被緩存。
c.put:
1.用途:用請求負載完整替換目標資源的所有當前顯示。
2.特點:如果資源不存在,可以創建它,是冪等的。
d.head:
1.用途:與get相同,但服務器不返回響應體。
2.特點:用于檢查資源是否存在、獲取其元數據(如內容類型、大小、修改時間)而無需傳輸整個內容。
e.trace:
1.用途:執行一個消息環回測試,返回服務器收到的請求。
2.特點:主要用于診斷,因安全風險通常被禁用。
f.delete:
1.用途:刪除指定的資源。
2.特點:操作是冪等的。
g.search:
1.用途:一種實驗性的方法,用于在遠程目錄中執行搜索查詢
2.
h.connect:
1.用途:建立一個到目標資源的隧道,通常用于通過代理加密通訊(SSL/TLS)
2.
i.propfind:
1.用途:檢索與資源關聯的屬性(如創建者、修改日期)
2.
j.proppatch:
1.用途:原子性的設置和刪除多個資源屬性
2.
k.patch:
1.用途:用于對資源應用部分修改。與put(整體替換)不同,patch只發送需要更改的部分。
2.
l.mkcol:
1.用途:創建一個集合(類似于目錄)。
2.
m.copy:
1.用途:將資源從源url復制到目標url。
2.
n.move:
1.用途:將資源從源url移動到目標url。
2.
o.lock:
1.用途:在資源上設置一個鎖,以防止并發修改。
2.
p.unlock:
1.用途:解除由lock方法設置的鎖。
2.
q.options:
1.用途:查詢目標資源支持的通訊選項(如支持http的方法)。
2.特點:常用于cors預檢請求。
1.2區別:
2.cookie機制
2.1主要功能:是在無狀態的http協議中用于保持會話狀態的一種機制,是服務器發送給瀏覽器的并存儲用戶信息,cookie是網站為識別用戶身份而存儲在本地。
a.會話管理:保持用戶登陸狀態,記錄購物車內容、游戲分數等。
b.個性化:保存用戶的偏好設置,如語言、主題、布局等。
c.追蹤與分析:記錄和分析用戶在一個網站或跨網站的行為,用于廣告投放和數據分析。
2.2使用流程:(分為3個階段:設置、發送、管理)
a.第一階段:
設置cookie(服務器->瀏覽器)當用戶首次訪問一個網站或執行特定動作(如登錄)時,流程開始。
1.瀏覽器發出請求:用戶訪問網址。
2.服務器創建cookie:服務器為了識別這個用戶,會生成一個唯一的標識符(類似html的id),并可能附帶其它信息。
3.服務器發送cookie:服務器在它的http響應中,通過一個叫做set-cookie的響應頭,將cookie的信息發送給瀏覽器。
(下面幾個值使用英文分號;隔開)
a.設置cookie的名稱和值(用‘=’賦值)。
b.max-age:設置cookie的有效期(用‘=’賦值)。
c.path:指定cookie在哪個路徑下有效(用‘=’賦值)。
d.secure:要求只有通過https連接時才能發送此cookie。
4.瀏覽器儲存cookie:瀏覽器收到這個響應后,會解析set-cookie頭,并將cookie的內容(名稱值、有效期等)存儲在本地。通常,瀏覽器會為每個網站創建一個獨立的‘cookie jar(cookie庫)’
b.第二階段:發送cookie(瀏覽器->服務器)
從此以后,在該cookie有效且符合路徑、域等規則的情況下:
1.瀏覽器發起后續請求:當用戶訪問同一網站的任何一個頁面時。
2.瀏覽器自動附加cookie:瀏覽器會檢查自己的cookie存儲,找到所有與該網站域名和路徑匹配的、未過期的cookie
3.瀏覽器發送cookie:瀏覽器自動將這些cookie通過cookie請求頭,包含在http請求中發送給服務器。
(注意:這里所有的相關的cookie都會被一并發送,用分號和空格隔開)
c.第三階段:管理與會話保持:
1.服務器識別用戶:服務器收到請求后,讀取cookie頭中的信息(即上述所有發送后被接收的cookie,eg:用戶的id)
2.恢復會話狀態:服務器通過這個(eg:id)在它的數據庫或內存中找到之前為該用戶保存的會話數據(如用戶名、用戶id、登陸狀態等)。
3.返回個性化內容:服務器根據識別出的用戶信息,返回對應的個性化頁面。
4.更新與銷毀cookie:
a.更新:服務器可以在任何響應中再次使用set-cookie來更新已有的cookie或者設置新的cookie。
b.銷毀:要讓cookie失效,服務器可以發送一個同名的、但設置了max-age=0或者過期日期為過去時間的cookie。
3.數據cookies的重發并編輯(右鍵fiddler詳情頁)-驗證cookie是否有效,能成功保存用戶信息:
3.1打開需要用戶驗證才可使用的網頁
3.2在fiddler中找到相應的詳情(類似加斷點)
3.3然后右鍵,找到重做,并點擊重發并編輯。
3.4此時該詳情被加上斷點,然后找到請求request的導航欄上的‘數據’
3.5打開數據,找到下面的cookies然后,找到相應要刪除的代碼,刪掉然后運行。(此時如果覺得cookies不好看,可以自己調整。或者點擊導航欄上的cookies進行查看。)
3.6如果此時該詳情運行出現302,則驗證成功,否則則重復上面操作。
4.1在fiddlerscript中,若需阻止某個請求發送可使用:oSession.Abort(),此方法用于終止對話,也就是阻止某個請求的發送。
4.2fiddlerscript的onBeforeresponse是在服務器響應返回之后、fiddler將響應呈現給用戶端之前觸發的。
4.3fiddler的AutoResponder功能無需編寫代碼即可實現簡單的請求轉發。
4.4在AutoResponder中規則的執行順序是從上到下,可通過拖拽調整順序(這樣能靈活控制請求的響應匹配邏輯)。
4.5在fiddler中,AutoResponder面板是用于創建自動轉發規則等相關操作的地方,點擊‘add rule’可以創建一條自動轉發規則。
4.6在fiddler中,‘save’是保存會話。
4.7在fiddler中,fiddlerobject.log(),用于日志記錄。
4.8fiddler自動轉發主要用于請求的重定向等操作(eg:線上請求轉發到本地測試環境、模擬接口返回固定數據、屏蔽特定廣告請求等。)
4.9在fiddler 的autoResponder中,規則是按順序檢查的,當某條規則的‘match’條件不滿足時,fiddler會自動跳過該規則,繼續執行下一條規則,直到找到所有的規則或者遍歷完所有規則。
4.10 在fiddler中的autoresponder中,‘enable rules’選項的作用是啟用所有已創建的自動轉發規則,這樣這些操作才會生效。
4.11fiddlerscript的核心腳本文件是customrules.js,在這個文件中可以編寫各種腳本規則來控制fiddler的行為,
4.12fiddler.exe是fiddler的可執行程序。
4.13fiddler.dll是相關的動態鏈接庫。
4.14config.ini是配置文件。
4.15

浙公網安備 33010602011771號