1.缓存
缓存,对应工程师来讲简直太熟悉了,太方便了,省略到资源或数据的获取方式,直接缓存到离用户访问最快的地方,也降低服务器的压力,比如:
(1)静态文件获取
服务器->cdn->本地磁盘->本地内存
(2)数据获取
数据库->内存型数据库
(3)host 缓存
主域名服务器->顶级域名服务器->根域名服务器->网络服务提供商缓存->路由器缓存->系统缓存->浏览器缓存
缓存的好处不言而喻,提升用户的访问速度,降低服务端的压力,问题就是:多份数据放在不同的地方,缓存数据一致性问题很关键。本次主要就host缓存中最常用的浏览器缓存讲讲。
2.说说浏览器缓存
名词解析:
(1)expires 和 cache-control 的区别:
相同:都是用来判断该资源的本地缓存的过期时间
expires:是绝对时间,所以如果服务器和本地时间不一致,可能都会有问题
cache-control:是相对时间,兼容性更好
2.1 浏览器缓存分类
浏览器缓存分为强缓存和协商缓存,匹配缓存的流程:
(1)浏览器发送请求前,根据请求头的 expires 和 cache-control 判断是否命中强