有关缓存
缓存,老生常谈;
大家都知道利用缓存可以提高性能,只有真正的了解,才可以化为己用。
缓存有哪些呢?
分为服务端和客户端两种,服务的端的缓存通常是cdn缓存,而客户端通常是浏览器缓存
CDN缓存
浏览器本地缓存失效后,浏览器会向CDN边缘节点发起请求。类似浏览器缓存,CDN边缘节点也存在着一套缓存机制,但当网站更新时,如果CDN节点上数据没有及时更新,即便用户再浏览器使用Ctrl +F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常;
CDN的缓存策略 大学课本上我们都讲过了,日常开发优化性能时无能为力,这里着重说下浏览器缓存:
大家一定注意过,我们的页面请求是这个样子的,有200,304,200的情况下 有form disk cache 和 from memery cache:
浏览器缓存分为 强缓存和协商缓存:
强缓存: 200(from cache) ,不经过服务器直接从缓存读取;
协商缓存:304 (not modified),通过服务器来告知缓存是否可用;
客户端向服务端请求的流程图:
以上流程图很好的说明了 请求图的200 /304 的问题;
而针对于 from dist/memery cache
from dist cache:缓存从磁盘中获取,等待下次访问时不需要重新下载资源,而直接从磁盘中获取,它的直接操作对象为CurlCacheManager。它与memoryCache最大的区别在于,当退出进程时,内存中的数据会被清空,而磁盘的数据不会,所以,当下次再进入该进程时,该进程仍可以从diskCache中获得数据,而memoryCache则不行。
from memery cache:缓存从内存中获取
浏览器对静态资源的缓存。打版本号解决问题。