在客戶端訪問網頁的過程中,如果我們每次請求資源都去訪問伺服器,這樣會增加伺服器的負擔,增加頻寬壓力和網頁訪問速度,利用快取可以有效的解決這個問題。但是如果資源更改導致客戶端更新不及時或者之前的版本有bug,快取又會造成嚴重的後果。因此,為了避免設定快取錯誤,掌握快取的原理對於更加合理的配置快取是非常重要。協商快取
總結
1.客戶端和**伺服器都可以快取該資源;2.客戶端在***秒的有效期內,如果有請求該資源的需求的話就直接讀取快取
3.返回狀態碼:statu code:200
4.如果使用者做了重新整理操作,就向伺服器發起http請求
1.只有客戶端可以快取該資源;**伺服器不快取2.客戶端在***秒內直接讀取快取
3.返回狀態碼:status code:200
1.客戶端在***秒的有效期內,如果有請求該資源的需求的話就直接讀取快取,即使使用者做了重新整理操作,也不向伺服器發起http請求2.返回狀態碼:status code:200
1.跳過設定強快取,但是不妨礙設定協商快取;2.一般如果你做了強快取,只有在強快取失效了才走協商快取的
3.設定了no-cache就不會走強快取了,每次請求都回詢問服務端。
1.不快取,客戶端、伺服器都不快取,也就沒有所謂的強快取、協商快取。
ctrl+f5
強制重新整理頁面,解決頁面直接引用的資源更新的問題
使用瀏覽器的無痕模式開發
chrome瀏覽器:f12在network中禁用快取
在開發階段,給資源加上乙個動態的引數
如果快取問題出現在ajax請求中,最有效的解決辦法就是ajax的請求位址追加隨機數
動態設定iframe的src時,有可能也會因為快取問題,導致看不到最新的效果,這時候在要設定的src後面新增隨機數也能解決問題
// response header
etag:
'5c20abbd-e2e8'
last-modified: mon,
24 dec 201809:
49:49gmt
// request header 變為
if-none-matched:
'5c20abbd-e2e8'
if-modified-since: mon,
24 dec 201809:
49:49gmt
1.cache-control 的值為 no-cache2.cache-control:max-age 過期
Http快取機制
快取快取,就是把需要的東西存起來,不需要每次都去請求。主要目的減小伺服器壓力,放到客戶端上來講,還利於節省流量,還能流暢的把ui顯示出來,提高了使用者體驗。對於http快取來講,主要的就是校驗快取的有效性,也就是新鮮度。如果客戶端不能及時響應服務端的資料變化,快取一直不能被更新,那不就是得不償失了?...
HTTP 快取機制
基於 header的示例 content length 3534http快取策略分為 1 快取策略 cache control 頭里的 public private no cache max age no store 其中no store為不儲存,no cache 0秒的max age 2 快取過期...
http快取機制
首先需要了解http協議的響應頭中的幾個欄位的含義 cache control expires 該欄位表示資源的過期時間。etag 該欄位表示資源的唯一標識。last modified 該欄位表示資源的最後修改時間。有以下2個問題需要注意 為什麼優先校驗etag,後校驗last modified?因...