HTTP協議探索之Cache-Control


Cache-Control指定了請求和響應遵循的緩存機制。好的緩存機制可以減少對網絡帶寬的佔用,可以提高訪問速度,提高用戶的體驗,還可以減輕服務器的負擔。


Cache-Control主要有以下幾種類型:

(1) 請求Request:

[1] no-cache  ---- 不要讀取緩存中的文件,要求向WEB服務器重新請求

[2] no-store    ---- 請求和響應都禁止被緩存
[2] max-age: ---- 表示當訪問此網頁後的max-age秒內再次訪問不會去服務器請求,其功能與Expires類似,只是Expires是根據某個特定日期值做比較。一但緩存者自身的時間不準確.則結果可能就是錯誤的,而max-age,顯然無此問題.。Max-age的優先級也是高於Expires的。
[3] max-stale  ---- 允許讀取過期時間必須小於max-stale 值的緩存對象。 
[4] min-fresh ---- 接受其max-age生命期大於其當前時間 跟 min-fresh 值之和的緩存對象

[5] only-if-cached ---- 告知緩存者,我希望內容來自緩存,我並不關心被緩存響應,是否是新鮮的.

[6] no-transform   ---- 告知代理,不要更改媒體類型,比如jpg,被你改成png.


(2) 響應Response:

[1] public    ---- 數據內容皆被儲存起來,就連有密碼保護的網頁也儲存,安全性很低
[2] private    ---- 數據內容只能被儲存到私有的cache,僅對某個用戶有效,不能共享
[3] no-cache    ---- 可以緩存,但是只有在跟WEB服務器驗證了其有效後,才能返回給客戶端

[4] no-store  ---- 請求和響應都禁止被緩存

[4] max-age:   ----- 本響應包含的對象的過期時間
[5] Must-revalidate    ---- 如果緩存過期了,會再次和原來的服務器確定是否爲最新數據,而不是和中間的proxy

[6] max-stale  ----  允許讀取過期時間必須小於max-stale 值的緩存對象。 

[7] proxy-revalidate  ---- 與Must-revalidate類似,區別在於:proxy-revalidate要排除掉用戶代理的緩存的。即其規則並不應用於用戶代理的本地緩存上。

[8] s-maxage  ---- 與max-age的唯一區別是,s-maxage僅僅應用於共享緩存.而不應用於用戶代理的本地緩存等針對單用戶的緩存. 另外,s-maxage的優先級要高於max-age.

[9] no-transform   ---- 告知代理,不要更改媒體類型,比如jpg,被你改成png.


發佈了109 篇原創文章 · 獲贊 101 · 訪問量 216萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章