鏈接:http://www.itdecent.cn/p/8da6beefcbc9
Cache-Control:緩存 與 ETag 的「緩存」有什么區(qū)別?
Cache-Control: max-age=1000 :請(qǐng)求完成,響應(yīng)完畢后,響應(yīng)體保存一百秒,時(shí)間一到緩存就沒有啦,需要從新請(qǐng)求服務(wù)器,去拿對(duì)應(yīng)的數(shù)據(jù)。100秒期間,瀏覽器不會(huì)再次發(fā)送任何請(qǐng)求,只在本地緩存拿數(shù)據(jù)。
ETag:對(duì)比本地與服務(wù)器端的MD5返回值,若一致,不需要重新加載響應(yīng)體,若不一致(說明文本發(fā)生了改變)則重新下載響應(yīng)體。當(dāng)數(shù)據(jù)沒發(fā)生改變的時(shí)候,每次請(qǐng)求雖然不會(huì)重新加載響應(yīng)體,但是還是發(fā)送了請(qǐng)求。
如果資源沒過期,前者根本不會(huì)發(fā)送請(qǐng)求,后者會(huì)發(fā)送請(qǐng)求。
PS:
①,作為入口,html是不能做緩存的,html有很多url,如果緩存的話,JS,CSS等發(fā)生更新變化,用戶不能第一時(shí)間獲取最新的版本。
②,如果緩存內(nèi)容在設(shè)置的過期時(shí)間內(nèi)發(fā)生變動(dòng),需要更改請(qǐng)求路徑,當(dāng)路徑發(fā)生改變,瀏覽器就會(huì)重新求情。