http緩存策略 - 協(xié)商緩存(對比緩存)
- 服務(wù)器端緩存策略(即判斷是否可以緩存)
- 服務(wù)端判斷一個資源是否被緩存
- 服務(wù)器判斷客戶端資源,是否和服務(wù)端資源一樣
- 如果一致則返回304(服務(wù)器告訴客戶端資源沒有被修改瘾带,可以直接用本地緩存),否則返回200和最新的資源
- 瀏覽器再次訪問服務(wù)器時姜贡,會帶著資源標(biāo)識
- 服務(wù)器端每次返回的除了資源,還有資源標(biāo)識
- 資源標(biāo)識
- 在Response Headers中,有兩種
- Last-Modified資源的最后修改時間(服務(wù)器返回時通過Last-Modified,客戶端向服務(wù)器發(fā)起請求時瞧甩,帶的是If-Modified-Since)
- Etag資源的唯一標(biāo)識(一個字符串,類似人類的指紋弥鹦,根據(jù)變動變化亲配,就是重復(fù)生成,但是內(nèi)容不變惶凝,Etag也不變)(服務(wù)器返回時通過Etag,客戶端向服務(wù)器發(fā)起請求時犬钢,帶的是If-None-Match)
- Last-Modified和Etag可以共存
- 優(yōu)先使用Etag苍鲜,Last-Modified只能精確到秒級
- 如果資源被重復(fù)生成,而內(nèi)容不變玷犹,則Etag更精確
- 在Response Headers中,有兩種