服務(wù)器的緩存控制
1.瀏覽器發(fā)現(xiàn)緩存無數(shù)據(jù),于是發(fā)送請(qǐng)求,向服務(wù)器獲取資源;
- 服務(wù)器響應(yīng)請(qǐng)求,返回資源,同時(shí)標(biāo)記資源的有效期;
- 瀏覽器緩存資源,等待下次重用。
客戶端的緩存控制
總結(jié):
1.緩存是優(yōu)化系統(tǒng)性能的重要手段,HTTP傳輸?shù)拿恳粋€(gè)環(huán)節(jié)中都可以有緩存;
- 服務(wù)器使用“Cache-Control”設(shè)置緩存策略,常用的是“max-age”,表示資源的有效期;
- 瀏覽器收到數(shù)據(jù)就會(huì)存入緩存,如果沒過期就可以直接使用,過期就要去服務(wù)器驗(yàn)證是否仍然可用;
- 驗(yàn)證資源是否失效需要使用“條件請(qǐng)求”,常用的是“if-Modified-Since”和“If-None-Match”,收到304就可以復(fù)用緩存里的資源;
- 驗(yàn)證資源是否被修改的條件有兩個(gè):“Last-modified”和“ETag”,需要服務(wù)器預(yù)先在響應(yīng)報(bào)文里設(shè)置,搭配條件請(qǐng)求使用;
- 瀏覽器也可以發(fā)送“Cache-Control”字段,使用“max-age=0”或“no_cache”刷新數(shù)據(jù)