Touko
20 days ago|views:100
强缓存与协商缓存
强缓存(Strong Cache)
浏览器直接从本地读取缓存资源,不与服务器通信。
控制方式
Expires(HTTP/1.0)
Expires: Wed, 30 Oct 2025 12:00:00 GMT
-
表示资源在这个时间点之前有效;
-
问题:受客户端时间影响。
Cache-Control(HTTP/1.1)
Cache-Control: max-age=31536000, public
-
表示资源在未来 31536000 秒内(约 1 年)有效;
-
常见取值:
-
public:所有用户都可缓存(默认) -
private:仅用户浏览器可缓存 -
no-cache:不直接使用强缓存,转协商缓存 -
no-store:禁止缓存(敏感信息)
-
协商缓存(Negotiated Cache)
当强缓存过期或被禁用时,浏览器会向服务器发送请求:
控制方式
Last-Modified / If-Modified-Since
-
服务器返回:
-
浏览器下次请求时带上:
-
服务器比较后:
-
没变:返回
304 Not Modified -
变了:返回新的资源和状态码
200 OK
-
ETag / If-None-Match
-
ETag是资源的唯一标识(内容哈希): -
浏览器下次请求时带上:
-
如果匹配,则返回
304;否则返回新内容。
tags:
0
comments:
It's deserted here, it looks like no one's been here