企業(yè)免費網(wǎng)站系統(tǒng)下載地址seo項目經(jīng)理
瀏覽器的緩存方式主要分為以下幾種:
1. 強制緩存(強緩存 / Memory Cache & Disk Cache)
- 通過
Expires
或Cache-Control
頭部控制。 - 在緩存有效期內(nèi),瀏覽器直接使用緩存,不發(fā)起請求。
關(guān)鍵HTTP頭:
Expires: Wed, 21 Oct 2025 07:28:00 GMT
(絕對時間,容易受客戶端時間影響)Cache-Control: max-age=3600, public
(相對時間,推薦使用)
存儲位置:
- Memory Cache(內(nèi)存緩存):用于短時間內(nèi)頻繁訪問的資源(如當(dāng)前頁面的 CSS、JS)。
- Disk Cache(磁盤緩存):用于存儲較大的資源,關(guān)閉頁面后仍然有效。
2. 協(xié)商緩存(弱緩存 / ETag & Last-Modified)
- 如果強緩存失效,瀏覽器會發(fā)送請求,并通過協(xié)商緩存判斷資源是否更新。
- 如果資源未更新,服務(wù)器返回 304 Not Modified,瀏覽器繼續(xù)使用緩存的資源。
關(guān)鍵HTTP頭:
Last-Modified
(資源的最后修改時間) &If-Modified-Since
ETag
(資源的唯一標(biāo)識符) &If-None-Match
3. Service Worker 緩存
- Service Worker 作為瀏覽器的代理,攔截請求并返回緩存,適用于 PWA(漸進式Web應(yīng)用)。
- 可用
Cache API
控制哪些資源緩存、如何更新。
4. 瀏覽器存儲(LocalStorage / SessionStorage / IndexedDB)
- LocalStorage:持久化存儲,關(guān)閉頁面或瀏覽器不會丟失數(shù)據(jù)。
- SessionStorage:會話級存儲,頁面關(guān)閉后數(shù)據(jù)丟失。
- IndexedDB:適用于存儲大量數(shù)據(jù),如 JSON 對象。
5. Push Cache(HTTP/2 推送緩存)
- 僅限 HTTP/2 使用,服務(wù)器可以主動推送資源到客戶端緩存,但 生命周期很短,僅在會話(Session)內(nèi)有效。
總結(jié)
緩存方式 | 是否需要請求 | 過期控制 | 適用場景 |
---|---|---|---|
強緩存 | 否 | Cache-Control / Expires | 資源不變更,減少請求 |
協(xié)商緩存 | 是 | ETag / Last-Modified | 資源可能變更 |
Service Worker | 否 | 自定義緩存規(guī)則 | PWA、離線緩存 |
瀏覽器存儲 | 否 | 自己控制 | 存儲 JSON、用戶設(shè)置 |
Push Cache | 否 | 僅會話內(nèi)有效 | HTTP/2 服務(wù)器推送 |
你可以根據(jù)需求選擇合適的緩存策略!🚀