http快取主要由兩種:本地快取和快取協商。優先使用本地快取,本地快取不起作用時使用快取協商。http快取主要是頭部資訊header來決定的。
一:什麼是本地快取?
本地快取有頭部資訊的cache-control和expires來決定。
cache-control是個相對值常量,它有如下幾個值:
no-cache:表示不使用本地快取,使用快取協商
no-store:不快取,每次都從伺服器請求資料
public:所有終端和中間的cdn都可以快取
private:只有終端瀏覽器可以快取
max-age:快取的資源儲存的最長時間,優先順序高於expires
本地快取的流程如下:
瀏覽器第一次請求,伺服器返回帶有cache-control或者expires,或者兩者都有的響應頭部資訊。瀏覽器第二次請求時,伺服器首先檢查本地快取的失效時間,如果沒有失效,直接使用本地快取,失效了使用快取協商。
二:快取協商
快取協商有頭部資訊的last-modified/if-modified-since 和 etag/if-no-match來決定。
1)last-modified/if-modified-since
通過比對資源的修改時間來決定是否使用快取
流程如下:
瀏覽器第一次請求,伺服器返回帶有last-modified的響應頭部資訊。瀏覽器第二次請求時,向伺服器傳送if-modified-since的頭部資訊,伺服器比較修改時間,如果時間沒有改變,則使用快取。
2) etag/if-no-match
通過比較檔案的摘要資訊來判斷是否需要使用快取
流程類似於last-modified的流程。
HTTP 快取策略
瀏覽器一般快取 css js等靜態檔案,因為這些檔案的更新頻率相對來說比較低,合理利用瀏覽器的快取對 的效能提公升有很大幫助。http快取分為兩部分,分別是本地快取和快取協商,當本地快取不生效時會啟用快取協商。http快取主要由http協議的頭 header 資訊來制定。本地快取 本地快取是指瀏覽器...
HTTP快取策略
瀏覽器一般快取 css js等靜態檔案,因為這些檔案的更新頻率相對來說比較低,合理利用瀏覽器的快取對 的效能提公升有很大幫助。http快取分為兩部分,分別是本地快取和快取協商,當本地快取不生效時會啟用快取協商。http快取主要由http協議的頭 header 資訊來制定。本地快取是指當瀏覽器請求資源...
HTTP 快取策略
前端開發的同學大家都知道,專案中的靜態檔案等資訊,都要做快取處理,這裡,我們就來說一下http的快取策略。快取,顧名思義,其實就把是拿到的資源存起來,下次要用的時候就可以直接使用啦。有什麼作用呢?重用已獲取的資源能夠有效的提公升 與應用的效能。快取其實是乙個很廣義的概念,用到的地方很多,當然作用只有...