csworkman

个人博客

http缓存策略

2021-8-25 Mr Chang 前端

缓存的目的主要有两点:
1.提升数据交互的性能(速度)
2.缓解服务器或数据库的压力。

当用户第一次请求一个资源时,浏览器会先询问是否有命中缓存,没有命中缓存的缓存则浏览器再从服务器获取资源然后再把资源存到浏览器的缓存数据库中,则浏览器下次发现了满足某些缓存规则,就可以直接从缓存数据中取出你需要的资源。

什么是缓存策略呢,是比上面的过程还要复杂一些,http根据是否要向服务器发送请求将缓存规则分为了两类:强缓存和对比缓存(协商缓存)

强缓存:直接从缓存数据库中取出资源,无需在发送请求到服务器上面。

http中用来判断是否命中强缓存的字段为Expires 和 cache-control,cache-control 优先级高于Expires

cache-control 常见字段的含义:
public 表明响应可以被任何对象缓存,即使是通常不可缓存的内容。
private 表明响应只能被单个用户缓存,不能作为共享缓存,私有缓存可以缓存响应内容。
no-cache 可以在本地进行缓存,但每次发送请求时需要向服务器进行验证,如果服务器允许,才能使用本地缓存
no-store 禁止缓存客户端请求或服务器响应的内容,每次都必须重新请求服务器拿内容。
max-age 设置缓存存储的最大周期,超过这个时间缓存被视为过期

发表评论: