#### 網絡請求的順序
`
1、Server Worker
2、Memory Cache
3、Disk Cache
4、網絡請求
`
## memory cache
memory cache是內存中的緩存,對應的disk cache就是硬盤緩存,幾乎所有的網絡請求都會被瀏覽器自動加入到memory Cache中,因為數量很大,但內存有限,所以只能是臨時保存。memory cache機制保證了一個頁面中如果有兩個相同的請求,實際會只請求一次。
max-age = 0 被解釋為不要在下次瀏覽時使用
如果不想資源進入緩存 可以使用 no-store
## disk cache
也稱http cache,存儲在硬盤上的緩存,因此是持久存儲的,實際存在于系統中的,disk cache會嚴格按照HTTP頭部信息中的各類字段來判定哪些資源可以緩存,哪些不可以。速度相比內存存儲慢,但還是比網絡請求快不少。當容量太大時,瀏覽器會有各自的算法來清除最老的或可能沒用的資源。
## service worker
有別于內存緩存和硬盤緩存,只有手動調用 API cache.delete(resource) 或者容量超過限制,被瀏覽器全部清空。
## max-age:即最大有效時間,在上面的例子中我們可以看到
##must-revalidate:如果超過了 max-age 的時間,瀏覽器必須向服務器發送請求,驗證資源是否還有效。
##no-cache:雖然字面意思是“不要緩存”,但實際上還是要求客戶端緩存內容的,只是是否使用這個內容由后續的對比來決定。
##no-store: 真正意義上的“不要緩存”。所有內容都不走緩存,包括強制和對比。
##public:所有的內容都可以被緩存 (包括客戶端和代理服務器, 如 CDN)
##private:所有的內容只有客戶端才可以緩存,代理服務器不能緩存。默認值。