1、一般针对静态资源如CSS,JS,图片等使用缓存,缓存原因:
1)请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影响网站交互的前提下可以大大加快网站加载速度。
2)节省带宽:对于已缓存的文件,可以减少请求带宽甚至无需请求网络。
3)降低服务器压力:在大量用户并发请求的情况下,服务器的性能受到限制,此时将一些静态资源放置在网络的多个节点,可以起到均衡负载的作用,降低服务器的压力。
2、缓存分类:服务端缓存(CDN缓存)、客户端缓存(浏览器缓存)
3、浏览器缓存:强缓存、协商缓存
1)强缓存:浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中获取资源,不会发送请求到服务器。
2)协商缓存:当强缓存没有命中的时候,浏览器一定会发送一个请求到服务器,通过服务器端依据资源的另外一些httpheader验证这个资源是否命中协商缓存,如果协商缓存命中,服务器会将这个请求返回(304),但是不会返回这个资源的数据,而是告诉客户端可以直接从缓存中加载这个资源,于是浏览器就又会从自己的缓存中去加载这个资源。若未命中请求,则将资源返回客户端,并更新本地缓存数据(200)。
3)区别:强缓存不发请求到服务器,协商缓存会发请求到服务器。