CDN全称是Content delivery network,翻译成内容分发网络。
顾名思义,CDN的浸染是将须要用到的资源分发到天下各地的网络节点上,让处在任何一个地点的人都可以从最近的一个网络节点上获取想要的内容,从而减少网络传输间隔达到性能优化的目的。
CDN事理

首先我们看一张CDN的事理图
CDN事情事理
通过上述图片,我们来大略剖析下用户访问的全体流程:
用户从浏览器输入想要访问的域名
浏览器通过CDN的智能域名解析做事,获取到域名对应的CNAME记录
解析该CANME记录,获取到CDN厂商边缘节点做事器的IP
向该边缘节点做事器发送要求,如果在该节点做事器中存在须要的内容,并且确定内容在有效期内,那么直接返回要求的数据
如果在该节点中不存在或者内容已经由期,那么会连续探求父节点做事器,依次向上递归查找,直至找到资源为止
如果所有的CDN做事器中都没有找到,则会去源站中探求,并将源站的资源分发至不同的CDN做事器中
CDN进行性能优化
我们都知道,一个完全的网页资源包括js,css,图片,音频,视频和页面文件等。
js,css等静态文件
js,css,图片,音频和视频等文件都是静态文件,一个成熟的网站在上线的时候对它们修正的可能性比较小,这些类型的文件是最适宜做CDN加速的。通过CDN将这些静态资源分发至全国各地的做事器节点上,在任何一个地方访问网页都可以从最近的节点做事器高下载资源。
页面文件
页面文件紧张分为静态页面文件和动态页面文件。
静态页面文件的构造一样平常是不会改变的,紧张做展示利用,像各大公司的官网首页一样平常都是静态展示的文件,这类静态页面文件也很适宜做CDN加速。
动态页面文件指的是页面会根据做事器端返回的相应内容动态的渲染,例如JSP,PHP文件等。
这些页面文件内容是动态获取的,以是并不适宜做CDN加速。
由于网页的内容是动态变革的,以是做事器端存储的内容有效期是比较短的,这样在浏览器要求到CDN做事器上的内容后会总是以过期来处理,终极还是要向源站发送要求。在这种情形下,CDN的存在就完备没故意义。
考虑的问题
各大浏览器对付相同IP下的并发连接要求数是有限定的,虽然不同的浏览器所做的限定不一样,但是都至少会有6个,我们就以6个来剖析。
如果页面上来自同一个IP下的要求资源数超过6个,但是由于浏览器的限定,最多只能同时下载6个,一样平常要求的资源文件都是几KB或者几十KB的,而目前网络带宽逐步增加,这些资源同时下载,也不会超过带宽数,这就会造成网络带宽的摧残浪费蹂躏。
办理方案
这种问题的办理方案是,将内容分发至多个不同的做事器中去,担保同一个做事器下不超过6个资源文件,这样就可以同时从不同的做事器中并行下载资源,尽可能的减少资源要求等待的韶光。
总结
本日的文章紧张内容是关于CDN加速的,你理解了吗?
以下是之前总结的Web性能优化内容,感兴趣的可以看一下
1.经典口试题-Web前端性能优化方法(1)
2.经典口试题-Web前端性能优化方法之延迟加载