有关缓存

缓存,老生常谈;

大家都知道利用缓存可以提高性能,只有真正的了解,才可以化为己用。

缓存有哪些呢?

分为服务端和客户端两种,服务的端的缓存通常是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:缓存从内存中获取

浏览器对静态资源的缓存。打版本号解决问题。

 

posted @ 2017-10-24 10:13  fnncat  阅读(180)  评论(0编辑  收藏  举报