關於瀏覽器的快取(強快取和協商快取的詳解)

2021-09-24 13:08:21 字數 917 閱讀 4788

瀏覽器的快取分為強快取和協商快取,當客戶端請求某個資源的時候,獲取快取的流程如下

(1)先根據這個資源的http header判斷它是否命中強快取,如果命中,則直接從本地快取中獲取資源,不會則向伺服器請求 資源。

(2)當強快取沒有命中時,客戶端會傳送請求到伺服器,伺服器通過另一些request header驗證這個資源是否命中協商快取,這個過程成為http再驗證,如果命中,伺服器直接返回請求而不返回資源,而是告訴客戶端之間從快取中獲取,客戶端收到返回後就直接從客戶端獲取資源

(3)強快取和協商快取的共同之處在於:如果命中快取,伺服器不會返回資源;區別是:強快取不傳送請求打伺服器,但是協商快取會傳送請求到伺服器

(4)當協商快取沒有命中時,伺服器會返回資源給客戶端

(5)當ctrl+f5強制重新整理網頁時,直接從伺服器載入,跳過強快取和協商快取

(6)當f5重新整理頁面時,跳過強快取但會檢查協商快取

(1)expires該字段是http1.0時的規範,值是乙個絕對時間的gmt格式的時間字串,代表快取的過期時間

(2)cache-control:max-age該字段是http1.1的規範強快取利用的是max-age的值來實現快取資源的最大生命週期,單位是秒

(1)last-modified資源最後的更新時間,隨著伺服器的response返回

(2)if-modified-since通過比較兩個時間來判斷資源在兩次請求期間是否有過修改,如果沒有就命中協商請求

(3)etag資源內容的唯一標識,隨著伺服器的response返回

(4)if-none-match伺服器通過請求頭部的if-none-match與當前資源的etag是否一致來表示資源在兩次請求中是否有過修改,如果沒有修改,則命中協商快取

瀏覽器快取 強制快取和協商快取

瀏覽器快取是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件 瀏覽器快取主要指http的快取 即協議層,協議層快取可以被分為強制快取和協商快取。兩種情況,一種是需要傳送http請求,一種是不需要傳送。協議中可以造成強制快取的字段有 ht...

強快取和協商快取

對於一次已經有快取存在的請求來說 即之前已經發過針對這個資源的請求,在本地已經有快取 如果發起請求,那麼 首先會去找到快取資源的響應頭中的expires 過期時間 和cache control 控制快取的失效性 來判斷當前是否直接使用快取,如果當前時間還在expires之前,即快取仍未失效的情況下,...

強快取和協商快取

一 瀏覽器快取 1,第一次請求,無快取請求過程 流程如下所示 第二次請求,有快取請求的過程 流程如下圖所示 瀏覽器的快取分為二種,第一種的是強快取,另外一種是協商快取 2 強快取 定義 強快取在請求資源的時候,會從header裡面讀取是否是強快取,在有效的時間時間期內,從快取裡讀取不能從服務那裡讀取...