瀏覽器強快取與協商快取

2021-10-07 03:05:42 字數 1232 閱讀 9347

瀏覽器強快取與協商快取

當使用者在瀏覽器中輸入url後,瀏覽器首先會檢視快取中是否有相應資源,若有則需要判斷快取的資源是否過期,主要通過cache-controlexpires欄位來判斷,若沒有過期則直接使用該資源,該過程就是強快取;若資源過期了則再向伺服器發起請求,並在請求頭中帶上初次請求該資源時響應頭中的last-modified字段作為if-modified-since或者etag字段作為if-none-match向伺服器傳送請求,伺服器通過該字段來判斷資源是否過期,若沒有過期則返回304狀態碼,瀏覽器直接從快取中取;若過期則更新響應頭中快取有關欄位並將最新的資源返回給瀏覽器,瀏覽器將最新的資源快取,這個過程就是協商快取。

借用網上一張:

強快取根據資源響應頭中的cache-controlexpires欄位來進行控制。

expirescache-control同時存在時cache-control優先順序更高。

若請求資源只是被重新上傳,內容並未改變,此時last-modified欄位會被修改,請求該資源時不會走快取。

若在1秒內多次修改資源,if-modified-since欄位和資源的最後修改時間進行比較時並不會察覺到資源的變化。

cache-control > expires > etag > last-modified

從記憶體快取讀取:

從磁碟快取中讀取:

先去記憶體看,如果有,直接載入

如果記憶體沒有,擇取硬碟獲取,如果有直接載入

如果硬碟也沒有,那麼就進行網路請求

載入到的資源快取到硬碟和記憶體

再進來-> 200(from disk cache) -> 重新整理 -> 200(from memory cache)

強快取與協商快取

瀏覽器的強快取與協商快取

之前一直對瀏覽器快取只能描述乙個大概,深層次的原理不能描述上來 終於在前端的兩次面試過程中被問倒下,為了洩恨,查閱一些資料最終對其有了乙個更深入的理解,廢話不多說,趕緊來看看瀏覽器快取的那些事吧,有不對的地方,請各位不吝賜教啊。本文主要講解瀏覽器端的快取,快取的作用是不言而喻的,能夠極大的改善網頁效...

強快取與協商快取

強制快取 當瀏覽器去請求某個檔案的時候,服務端就在respone header裡面對該檔案做了快取配置。快取的時間 快取型別都由服務端控制 expires 失效時間 伺服器時間與客戶端時間有偏差時,就可能會導致快取失效,比如使用者隨意修改了本地時間 http1.1新增cache control 1....

強快取與協商快取

協商快取 優先順序區別 瀏覽器快取包含兩種方式 強快取與協商快取 在第一次請求資源時,伺服器返回所請求資源與有效時間,瀏覽器將其快取在本地,在第二次請求該資源時,瀏覽器判斷該資源是否在有效期中,如果在有效期就直接呼叫該資源,不向服務端發起請求。expires expires是http1.0的規範,它...