CDN缓存那些事

2016-05-29 21:26:16 4174

1 CDN是什么?

谈到CDN的作用,可以用买火车票来形象比喻:

  几年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。

  CDN就可以理解为分布在每个县城的火车票代售点,用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。

2.CDN的优势很明显:

1CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低

2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载?

3.缓存是什么?

  这里不深究CDN背后高大上的架构,也不讨论CDN如何做到全局流量调度策略,本文着?讨论在有了CDN后,数据是如何被缓存的。缓存是一个到处都存在的用空间换时间的例子。通过使用多余的空间,我们能够获取更快的速度。

  (1)首先,看看网站没有接入CDN时,用户浏览器与服务器是如何交?的:

  图片1.png 

  (2)户在浏览网站的时候,浏览器能够在本地保存网站中的图片或者其他文件的副本,这样用户再次访问该网站的时候,浏览器就不用再下载全部的文件,减少了下载量意味着提高了页面加载的速度。

如果中间加上一层CDN,那么用户浏览器与服务器的交互如下:

 图片2.png 

 客户端浏览器先检查本地缓是否过期,如果过期,则向CDN边缘节点发起请求,CDN边缘节点会检测用户请求数据的缓存是否过期:

 如果没有过期,则直接响应用户请求,此时一个完成http请求结束;

如果数据已经过期,那么CDN还需要向源站发出回源请求(back to the source request,来拉取最新的数据。

4.客户端(?览器)缓存

  客户端缓存减少了的服务器请求,避免了文件重复加载,显著地提升了用户地方。但是当网站发生了更新的时候(如替换了cssjs以及图片文件),浏览器本地仍保存着旧版本的文件,从而导致无法预料后果。

  曾几何?,一个页面加载出来,页面各元素位置乱飘,按钮点击失效,前端GG都会习惯性地问一句:“缓存清了没?”,然后Ctrl+F5 Everything is OK

5.我司CDN加速主要针对云南没有双线/多线机房的网络现状,部署了昆明电信/移动/联通节点,加速后云南电信、移动、联通用户客户端上ping目标站点都小于10MS(各地区情况不同,昆明?般在5MS以内,其他州市在15MS以内)。针对动态内容网站,部署了中转优化有点,针对各行业(电子商务、医疗网站、旅游)做特殊优化,满足各行业需求。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: