poplark

Hi, 👋 ! 如果您发现有什么错误的地方,点这里可以提 issue,🤝🤝

View My GitHub Profile

19 November 2020

浏览器 Cache

by poplark

一. 强缓存

请求不会发送到服务器,浏览器直接返回缓存结果

1. expires - HTTP/1.0

response header

expires: Wed, 10 Oct 2020 09:51:00 GMT

2. cache-control - HTTP/1.1

response header

cache-control: max-age=2592000

总结:

二. 协商缓存

如果请求没有命中强缓存,或者强缓存失效后,就需要向服务器发起请求,验证资源是否有更新

1. last-modified (服务器) 和 if-modified-since (浏览器)

last-modified 表示文件的最后修改日期,由服务器添加到 Response Header 中;if-modified-since 由浏览器添加到 Request Header 中,是上一次该资源的 last-modified 值。(秒级)

response header

last-modified: Fri, 20 Nov 2020 12:01:01 GMT

request header

if-modified-since: Fri, 20 Nov 2020 12:01:01 GMT

2. etag (服务器) 和 if-none-match (浏览器)

etag (文件指纹),如 md5,由服务器添加到 Response Header 中,浏览器再次请求该资源时,会在 Request Header 中添加 if-none-match 头,值为上次 etag 的值。

总结:

三. 前端优化

参考:浏览器 & HTTP 缓存策略

tags: browser - cache