稍微了解HTTP協(xié)議的前端同學(xué),相比對Cache-Control不會感到陌生,性能優(yōu)化時經(jīng)常都會跟它打交道。
常見的值有有private、public、no-store、no-cache、must-revalidate、max-age等。
各個取值所代表的含義,網(wǎng)上總結(jié)挺多的,這里就不打算再進行逐一介紹,感興趣的可以一起探討交流。
本文僅挑no-cache、must-revalidate 這兩個進行值進行探究對比。在項目實踐中,這兩個值用的比較多,也比較容易搞混。
如果對論證過程不感興趣,也可以直接跳到“對比結(jié)論”小節(jié)查看結(jié)論。
Cache-Control: no-cache
Cache-Control: max-age=60, must-revalidate
傳送門:RFC2616關(guān)于Cache-Control首部的介紹。
no-cache、must-revalidate簡介
-
no-cache: 告訴瀏覽器、緩存服務(wù)器,不管本地副本是否過期,使用資源副本前,一定要到源服務(wù)器進行副本有效性校驗。
-
must-revalidate:告訴瀏覽器、緩存服務(wù)器,本地副本過期前,可以使用本地副本;本地副本一旦過期,必須去源服務(wù)器進行有效性校驗。
上面的介紹涉及三個主體:瀏覽器、緩存服務(wù)器、源服務(wù)器。下面小節(jié)會簡單進行介紹。