稍微了解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é)會簡單進行介紹。

網(wǎng)友評論