有关CDN的介绍请见:http://blog.csdn.net/zhouziyu2011/article/details/60962103
1、CDN
CDN是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容,在优化性能时,会根据距离的远近来选择。
CDN将网站的资源发布到离用户最近的网络边缘,用户可以就近取得资源内容。
CDN通常部署静态内容:JavaScript脚本、CSS样式表、图片、图标、Flash等,不包括html页面。
2、CDN用于前端性能优化的背景:
浏览器是根据域(Domain)来缓存内容资源的,只要域(Domain)不一样,那么即使是同一个资源,也需要重复下载,且使用同样的方式缓存起来,这需要需要占用带宽和本地缓存空间。
3、CDN用于前端性能优化:
1) 将静态资源缓存到离用户很近的相同网络运营商的CDN节点上。
如果服务器离用户更近,则HTTP请求和响应时间将缩短。
不同地区的用户访问同一个域名能得到不同CDN节点的IP地址,这要依赖于CDN服务商提供的智能DNS服务,浏览器发起域名查询时,智能DNS服务会根据用户IP计算并返回离它最近的相同网络运营商的CDN节点IP。
通过智能DNS服务获取最近的相同网络运营商的CDN节点IP后,不同地区的用户会向离自己最近的相同网络运营商的CDN节点发起请求,当请求达到CDN节点后,节点会判断自己的内容缓存是否有效,一个地区内只要有一个用户先加载资源,就会在CDN中建立缓存,该地区的其他后续用户都能直接读取缓存数据。
2) 加载静态资源使用与页面不同的域名(不是用独立的二级或三级域名,而是用独立的一级域名)
静态资源和主页面不同域,加载静态资源的HTTP请求就不会带上主页面中的cookie等数据,减少了数据传输量,节省流量,提升上传效率。