快取驗證Last Modified和Etag的使用

2022-06-29 23:39:19 字數 608 閱讀 4057

快取工作示意圖:

在http協議裡面,資料的驗證方式,主要有兩個驗證頭:last-modified 和 etag。

last-modified 配合last-modified-since或者if-unmodified-since使用,對比上次修改的時間驗證資源是否需要更新。

etag 是乙個更加嚴格的資料驗證。資料簽名[根據資料的內容進行簽名,如果資料內容變了,etag也會變],最典型

的etag資料簽名就是hash計算。配合if-match或者if-non-match使用,對比資源的簽名判斷是否使用快取。

if (request.url === '/script.js') )

const etag = request.headers['if-none-match']

if (etag === '777') )

response.end('')

} else

) response.end('console.log("script loaded twice")')

}

快取驗證 Last Modified Etag

上篇文章我們知道,當我們給catch control 設定了 no catch 後,每次瀏覽器對這個資源的請求時,都會到伺服器端進行資源驗證,驗證完之後,如果確定這個資源可以使用快取,瀏覽器才會讀取本地的快取。下面是瀏覽器請求資料過程中關於快取的步驟。進行資料驗證,主要是有兩個header last...

MyBatis 快取詳解 一級快取驗證

基於mybatis standalone 工程,注意演示一級快取需要先關閉二級快取,localcachescope 設定為session 判斷是否命中快取 如果再次傳送sql 到資料庫執行,說明沒有命中快取 如果直接列印物件,說明是從記憶體快取中取到了結果。1 在同乙個session 中共享 2 不...

快取驗證Last Modified和Etag的使用

快取工作示意圖 瀏覽器建立乙個請求,然後請求到達本地快取,如果找到了則直接返回給瀏覽器,如果沒有,可能會經過 服務,然後去 快取中去找,如果命中,則直接返回,如果沒有,才會到源伺服器進行請求。在http協議裡面,資料的驗證方式,主要有兩個驗證頭 last modified 和 etag。last m...