學習筆記--HTTP-字段總結(三)-與Cookie和Cache相關的字段總結

目錄

 

一、Cookie相關

1、Set-Cookie 和 Cookie

2、Cookie常見的屬性值

1)Cookie的生命週期

2)Cookie的作用域

3)Cookie的安全性

二、Cache 緩存相關報文字段

1、瀏覽器請求數據及使用Cache的過程

2、Cache-Control相關字段

1)Cache-Control在響應報文中

2)其他屬性

3)Cache-Control在請求報文中

三、緩存數據更新

1)請求過程

2)相關字段


一、Cookie相關

1、Set-Cookie 和 Cookie

響應頭字段:Set-Cookie

請求頭字段:Cookie

請求過程:當客戶端第一次與服務器通信時,服務器會爲這個客戶端創建一個身份標識(key=vaule),放進Set-Cookie字段裏,隨着響應報文一起傳給客戶端。客戶端發現響應報文裏有Set-Cookie這個字段,就將key=value值保存起來。當第二次這個客戶端再與服務器通信時,就會用Cookie字段帶着key=value值去請求服務,服務器就能直接識別客戶端的身份。

服務器可一次設置多個Cookie值:

實例:

響應報文:

Set-Cookie:a = xxx

Set-Cookie:b = xxx

請求報文:

Cookie:a = xxx;b = xxx

2、Cookie常見的屬性值

1)Cookie的生命週期

 Expires:過期時間,絕對時間點,可理解爲“截止時間”;

Max-Age:相對時間,單位是秒;

注意:兩者同時出現,優先採取Max-Age

2)Cookie的作用域

使瀏覽器僅發送給特定的服務器和URI,防止信息盜用。

Domain:域名

Path:路徑

3)Cookie的安全性

HttpOnly:此Cookie只通過瀏覽器HTTP傳輸協議傳輸;

SameSite:防範“跨站請求僞造”攻擊

示例:

SameSite = Strict  -> Cookies不隨連接跳轉跨站發送;

SameSite = Lax -> 允許GET/HEAD,不允許POST;

Secure:Cookie僅能用HTTPS協議傳輸加密傳輸,明文的HTTP協議會禁止發送。

二、Cache 緩存相關報文字段

1、瀏覽器請求數據及使用Cache的過程

step1:瀏覽器發現緩存無數據,於是發送請求,向服務器獲取資源;

step2:服務器響應請求,返回資源,同時標記資源的有效期;

step3:瀏覽器緩存資源,等待下次重用。

2、Cache-Control相關字段

1)Cache-Control在響應報文中

響應報文,資源的有效時間,單位秒。

示例:

Cache-Control:max-age = 30   -> 這個頁面只能緩存30秒

注意:max-age是從報文創建之時就開始計算時間,包含再鏈路中傳輸的時間。但是Cookie的生命週期是響應報文到達客戶端開始計算。

2)其他屬性

no-store : 不允許緩存,用於變化非常頻繁的數據。

no-cache:允許緩存,但使用前必須驗證是否過期,是否有最新的版本。

nust-revalidate:緩存不過期就可以使用,過期瞭如果還想用就必須去服務器驗證。

3)Cache-Control在請求報文中

可以表示向服務器請求一個最新的的數據版本。

示例:

Cache-Control : max-age = 0

Cache-Control : no-cache

三、緩存數據更新

1)請求過程

在請求頭中添加一些字段,請求服務器進行判斷緩存是否過期,若過期則重新發送數據,沒過期則不用發送。

2)相關字段

響應字段:

ETag:資源的唯一標識。

在客戶端與服務器第一次就某個資源進行通信時,響應報文裏提供。

Last-modified:文件的最後修改時間。

在客戶端與服務器第一次就某個資源進行通信時,響應報文裏提供。

請求字段:

If-Modified-Since:詢問服務器資源是否發生變化。與Last-Modified搭配。

If-None-Match:詢問服務器資源是否能夠匹配。與ETag搭配。

其他字段:

If-Match 、 If-Range 、 If-Unmodified-Since 

3)狀態碼
304 Not Modified


參考資料:

1.《HTTP權威指南》

2.極客時間-《透視HTTP協議》專欄-羅劍鋒

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章