瀏覽器快取 簡單介紹

2022-09-06 02:12:13 字數 1150 閱讀 3403

強快取:

public:響應會被快取,並且在多使用者間共享。預設是public。

private: 響應只作為私有的快取,不能在使用者間共享。如果要求http認證,響應會自動設定為private。

max-age: 響應頭設定max-age(快取的最大的有效時間,單位為秒(s))。max-age會覆蓋掉expires

請求頭設定快取max-age=0的時候,該請求不會直接讀取已有的快取,而是與瀏覽器協商後決定是都讀取快取(協商快取)

no-cache: 響應頭設定了no-cache之後並不代表瀏覽器不使用快取,而是本次響應資源不進行快取。

請求頭設定了no-cache是本次請求不讀取快取直接拉取最新的資源。

no-store: 絕對禁止快取、刪除已有的快取資源。

協商快取:

與快取的使用者行為

f5(不直接讀快取,與伺服器協商後再決定是否讀取快取):

谷歌瀏覽器:只有當前請求無視cache-control(請求header額外新增了cache-control:max-age=0),其他請求不受影響(注意谷歌瀏覽器快取的方式有兩種:硬碟快取(dist cache)、記憶體快取(menory cache),其他瀏覽器均為硬碟快取)

火狐瀏覽器:所有請求(包括載入的js、css檔案等)無視cache-control(請求header額外新增了cache-control:max-age=0)

crtl+f5(不讀快取,直接獲取新的資源,所有瀏覽器都一樣,請求header額外新增cache-control:no-cache)

專案中常用的快取方式:

1. 如果有用到webpack等打包工具的,建議使用強快取(cache-control方式,設定max-age時間可以長一些)+webpack打包使用has**件名實現瀏覽器快取與快取更新。(這是目前最優的解決方案)

2. 如果專案中沒有用到webpack等打包工具的,建議使用協商快取來解決快取問題(協商快取較消耗效能,且google瀏覽器會出現無法獲取最新的etag、last-modified等情況。火狐瀏覽器正常。)。

簡單總結瀏覽器快取

瀏覽器快取 瀏覽器快取是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面的時候,瀏覽器可以直接從本地磁碟載入文件。為什麼要使用瀏覽器快取 瀏覽器快取作為web效能優化的重要方式之一,那麼瀏覽器快取的過程是怎麼樣的呢?瀏覽器快取過程 在瀏覽器第一次發起請求時,本地無快取,向伺...

簡單理解瀏覽器快取

寫在前面 前段時間公司同事分享了前端快取有關的知識,作為乙個還沒畢業的實習生,聽得我一頭霧水,遂在閒暇之際,自己捋一捋。快取是效能優化中非常重要的一環,快取的意義就在於減少請求,更多地使用本地的資源,給使用者更好的體驗的同時,也減輕伺服器壓力。接下裡從三個部分來說明一下前端的快取。1.強快取 2.協...

快取 瀏覽器快取

瀏覽器快取 brower caching 是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件 1 瀏覽器第一次請求時,會發出一組 http 頭,用來指導瀏覽器如何進行快取。伺服器規定乙個資源是否要進行快取,主要由響應頭中的expires...