issues
search
Amybiubiu
/
Blog
6
stars
0
forks
source link
缓存
#15
Open
Amybiubiu
opened
3 years ago
Amybiubiu
commented
3 years ago
HTTP 缓存
参考:MDN HTTP/Caching 、HTTP 权威指南
缓存 Get 请求的流程 查看是否有缓存-》浏览器缓存新鲜度检查 -》与服务器验证
Expires 和 Cache-Control Expires 是一个绝对时间,依赖设备时间的准确性。 Cache-Control 的 max-age 是一个时间长度,在该时间范围内再次请求,视为新鲜。还有 s-maxage 用于控制公共缓存。如果不新新鲜,或者设置了 Cache-Control: no-cache / must-revalidate 则与视情况与服务器校验。must-revalidate 和 no-cache 的区别半天看不懂,我死了。
stackoverflow
must-revalidate 是像正常情况那样缓存不新鲜,与服务端验证,为了防止有些浏览器不走这种流程使用过期的缓存而加以强调。no-cache 就是不检查新鲜度,直接验证。
If-Modified-Since, Last-Modified 和 If-None-Match, ETag 如果服务器响应了 Last-Modified 和 ETag 字段,需要使用这两者进行验证,两者共同通过验证,返回 304 Not Modified。 ETag 的相比 Last-Modified 的优势
last-modified 只能以秒粒度
对于周期性重写的文件,更改内容不变。或者做了一些不重要的修改如注释的修改,也没必要重装数据?。
浏览器数据存储
localStorage
sessionStorage
IndexDB
反向代理 与 CDN 负载均衡,最近资源响应,提高响应速度。