稍微了解HTTP協(xié)議的前端同學枫浙,相比對Cache-Control不會感到陌生朦拖,性能優(yōu)化時經常都會跟它打交道我磁。
常見的值有有private孽文、public、no-store夺艰、no-cache芋哭、must-revalidate、max-age等郁副。
各個取值所代表的含義减牺,網上總結挺多的,這里就不打算再進行逐一介紹存谎,感興趣的可以一起探討交流拔疚。
本文僅挑no-cache、must-revalidate 這兩個進行值進行探究對比愕贡。在項目實踐中草雕,這兩個值用的比較多,也比較容易搞混固以。
Cache-Control: no-cache
Cache-Control: max-age=60, must-revalidate
傳送門:RFC2616關于Cache-Control首部的介紹**墩虹。
如果對論證過程不感興趣,也可以直接跳到“對比結論”小節(jié)查看結論憨琳。
no-cache诫钓、must-revalidate簡介
no-cache: 告訴瀏覽器、緩存服務器篙螟,不管本地副本是否過期菌湃,使用資源副本前,一定要到源服務器進行副本有效性校驗遍略。
must-revalidate:告訴瀏覽器惧所、緩存服務器骤坐,本地副本過期前,可以使用本地副本下愈;本地副本一旦過期纽绍,必須去源服務器進行有效性校驗。
上面的介紹涉及三個主體:瀏覽器势似、緩存服務器拌夏、源服務器。下面小節(jié)會簡單進行介紹履因。
瀏覽器障簿、緩存服務器、源服務器
瀏覽器:資源請求直接發(fā)起方栅迄。
源服務器:資源實際提供方站故。
緩存服務器:在瀏覽器、源服務器之間架設的中間服務器毅舆,由它代替瀏覽器世蔗,向源服務器發(fā)起資源請求;
緩存服務器作用如下朗兵。緩存服務器不是必須的,瀏覽器可也可與源服務器直接通信顶滩。
加速資源訪問速度余掖,降低源服務器的負載。緩存服務器從源服務器獲取資源礁鲁,并返回給瀏覽器盐欺。此外,緩存服務器一般還會在本地保存資源的副本仅醇,當有相同的資源請求到來冗美,緩存服務器可返回資源副本,以此提高資源訪問速度析二。
![](https://pic4.zhimg.com/v2-34afa3f128b800f48734819cb50ae6e7_b.png)
作者:陳映平鏈接:https://zhuanlan.zhihu.com/p/23281814來源:知乎著作權歸作者所有粉洼。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處叶摄。