緩存分類
前言:之所以寫這一類文章 主要是 對自己 的知識 梳理 總結,如果能幫助大家 當然更好
- html 標籤緩存 設置
- 服務端 nginx 緩存設置
- cdn 緩存設置,+ 負載均衡
- 瀏覽器緩存規則
- 本地數據緩存 cookie ,localstorage,sesstionStorage,DB 等
一:本地數據緩存 cookie ,localstorage,sesstionStorage,DB 等
類型 | 緩存時間 | 大小 | 備註 |
---|---|---|---|
cookie | 根據 expires 來判斷( 不設置 則 僅在會話階段)(設置過期時間:馬上無效)(>當前時間:則爲設置時間後失效) | 4k | 1.會與請求 每次傳遞到服務端,2,不同瀏覽器都是有區別的哦 |
localStorage | 一直都在 持久化 | 5M | 就在瀏覽器裏 |
sessionStorage | 在會話階段 | 5M | 就在瀏覽器裏 |
二:CDN緩存設置
咋說呢 ,,花錢買的cdn 又有專門的文檔 感覺咋說 都是配置
- 意義 :CDN 主要目的是加速網站 ,減少服務器壓力 ,
- 常見指標 (延時,下載速度,打開速度,丟包率,回源率,緩存命中率)
https://help.aliyun.com/document_detail/27112.html?spm=5176.13394999.0.0.32f173f8FE6YRH
當然 說到CDN 緩存 就又能想到負載均衡 ,負載均衡 簡單來說,有 購買的,有自己配置的,常見 或者我使用過的 就只有 nginx 簡而言之 就是 配多個服務器設置權重 來達到分流的目的,,當然 花錢也行
三:瀏覽器緩存規則
- 強緩存 (用戶發送的請求,直接從客戶端緩存中獲取,不發送請求到服務器,不與服務器發生交互行爲,利用http的返回頭中的Expires或者Cache-Control兩個字段來控制)(通過 Nginx 配置 OR server 配置)
- 協商緩存 用戶發送的請求,發送到服務器後,由服務器判定是否從緩存中獲取資源(http頭信息中的Last-Modify/If-Modify-Since或Etag/If-None-Match)
四:html 標籤緩存(只是作爲了解)
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Cache-Control
no-cache指示請求或響應消息不能緩存
no-store用於防止重要的信息被無意的發佈。在請求消息中發送將使得請求和響應消息都不使用緩存。
max-age指示客戶機可以接收生存期不大於指定時間(以秒爲單位)的響應
min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應
max-stale指示客戶機可以接收超出超時期間的響應消息。如果指定max-stale消息的值,那麼客戶機可以接收超出超時期指定值之內的響應消息
-
怎麼說呢 ,京東 ,淘寶 ,美團, 等首頁,微信文章 都未使用 這些標籤了,無非就是 在html 階段儘量這樣處理,保證代碼是最新的
-
緩存問題依靠html的meta標籤解決是不靠譜的,一般大型網站都依靠服務端 在 http頭中對靜態資源設置緩存
-
CDN 緩存設置 (簡單來說就是花錢 玩兒配置,設置規則設置閥值)
五:服務端 nginx 緩存設置
- proxy_cache_path 和 proxy_cache 就可以開啓內容緩存
- 很遺憾 我自己在項目中本身沒有怎麼使用過,看了一些這篇文章 ,與大家共同學習哈
- https://segmentfault.com/a/1190000019179879?utm_source=tag-newest