- 檢查強(qiáng)緩存:
- Expires(http1.0,時(shí)區(qū)計(jì)算可能導(dǎo)致出錯(cuò)源武,一個(gè)時(shí)間點(diǎn))
- Cache-Control(1.1扼褪,優(yōu)先級(jí)更高,可設(shè)置max-age粱栖,public, private, no-store, no-cache)
- 檢查協(xié)商緩存:
- Last-modified: 服務(wù)器端資源的最后修改時(shí)間话浇,響應(yīng)頭部會(huì)帶上這個(gè)標(biāo)識(shí)。第一次請(qǐng)求之后闹究,瀏覽器記錄這個(gè)時(shí)間幔崖,再次請(qǐng)求時(shí),請(qǐng)求頭部帶上 If-Modified-Since 即為之前記錄下的時(shí)間渣淤。服務(wù)器端收到帶 If-Modified-Since 的請(qǐng)求后會(huì)去和資源的最后修改時(shí)間對(duì)比赏寇。若修改過(guò)就返回最新資源,狀態(tài)碼 200价认,若沒(méi)有修改過(guò)則返回 304嗅定。
- Etag/If-None-Match: 由服務(wù)器端上生成的一段 hash 字符串,第一次請(qǐng)求時(shí)響應(yīng)頭帶上 ETag: abcd用踩,之后的請(qǐng)求中帶上 If-None-Match: abcd渠退,服務(wù)器檢查 ETag忙迁,返回 304 或 200。
last-modified 和 Etag 區(qū)別:
- 某些服務(wù)器不能精確得到資源的最后修改時(shí)間碎乃,這樣就無(wú)法通過(guò)最后修改時(shí)間判斷資源是否更新姊扔。
- Last-modified 只能精確到秒。
- 一些資源的最后修改時(shí)間改變了梅誓,但是內(nèi)容沒(méi)改變恰梢,使用 Last-modified 看不出內(nèi)容沒(méi)有改變。
- Etag 的精度比 Last-modified 高梗掰,屬于強(qiáng)驗(yàn)證嵌言,要求資源字節(jié)級(jí)別的一致,優(yōu)先級(jí)高愧怜。
建議緩存:css呀页、js妈拌、圖標(biāo)拥坛、html、可下載內(nèi)容