強快取
: 強快取命中不會傳送請求到伺服器端,直接從本地快取中獲取資源,狀態碼200 ( from cache )
協商快取
:協商快取會傳送請求到伺服器,伺服器通過請求頭部欄位來驗證資源是否命中協商快取,如果命中,則返回狀態碼304 ( not modified )
,通知瀏覽器從快取中獲取資源
4.1 last-modified/if-modified-since
伺服器響應資源的時候返回乙個頭部字段last-modified
,代表該資源最後修改時間
當瀏覽器再次向伺服器請求該資源時
會傳送if-modified-since
資訊,意為該時間之後檔案是否有被修改過
伺服器將這個請求時間與本地資源實際最後修改時間做對比,如果檔案沒有被修改,則返回狀態碼304
,通知瀏覽器從快取中讀取資源檔案。
如果if-modified-since的時間比伺服器當前時間(當前的請求時間request_time)還晚,會認為是個非法請求
4.2 etag/if-none-match
etag
是乙個響應首部字段,它是根據資源內容生成的一段hash字串,標識資源的狀態,
由服務端產生。當瀏覽器再次向伺服器請求該資源時
會傳送if-none-match
字段
伺服器收到請求後,拿if-none-match
欄位的值與資源的實際 etage 值進行比較
若相同,則命中協商快取,返回狀態碼304
。
etag
優先順序比last-modified
高,同時存在時會以etag
為準。
那已經有了last-modified
機制,為什麼要引入etage
機制呢?
某些伺服器不能精確得到資源的最後修改時間,這樣就無法通過最後修改時間判斷資源是否更新
如果資源修改非常頻繁,在秒以下的時間內進行修改,而last-modified
只能精確到秒
一些資源的最後修改時間改變了,但是內容沒改變,使用etag
就能判別出資源內容是否被修改
http快取 瀏覽器快取
如果以下題目都能快速回答,那此文章也就沒有必要要看啦 1.講一下http快取 強快取,協商快取 2.如何控制強 協商快取 expires,cache control,etag if none match,if modified sine last modified 3.cache control有哪...
HTTP瀏覽器快取機制
來自 瀏覽器快取機制 瀏覽器快取機制,其實主要就是http協議定義的快取機制 如 expires cache control等 但是也有非http協議定義的快取機制,如使用html meta 標籤,web開發者可以在html頁面的節點中加入標籤,如下 上述 的作用是告訴瀏覽器當前頁面不被快取,每次訪...
瀏覽器HTTP快取機制
介紹http快取之前先簡單說一下web快取 web快取是一種儲存web資源副本並在下次請求時直接使用該副本的技術。web快取可以分為這幾種 瀏覽器快取 cdn快取 伺服器快取 資料庫資料快取 因為可能會直接使用副本免於重新傳送請求或者僅僅確認資源沒變無需重新傳輸資源實體,web快取可以減少延遲加快網...