基础知识

服务器离用户越近,HTTP请求的响应时间将更短。

CNAME:别名记录,当多个域名需要指向同一服务器IP,可以使用一个域名做A记录指向该服务器IP,然后让多个域名指向该A记录。

ICP:Internet Content Providor。

DNS:Domain Name System。

什么是内容分发网络?

CDN(Content Deliver Network)是一组分布在多个不同地理位置的Web服务器,通过将网站的资源发布到最接近用户的网络”边缘“,供用户就近取得所需内容。CDN可以看作一种缓存代理,主要用于对静态资源(如图片,css,js等)的缓存。

CDN的网络架构

CDN的网络架构主要分为中心和边缘两个部分,中心服务器主要负责DNS解析和全局负载均衡;而边缘服务器指异地节点,作为CDN分发的载体,包括负载均衡和高速缓存。边缘服务器的负载均衡负责缓存内容的负载均衡,保证节点的工作效率,同时还负责与中心服务器通信,实现整个系统的负载均衡。边缘服务器的高速缓存负责存储从客户源服务器获取的资源,并提供给本地用户访问。

CDN的工作原理

除了一些大型互联网公司拥有自己的CDN,其他公司基本都会选择CDN运营商合作。

所以作为ICP,需要把域名解释权交给CDN运营商,操作时ICP修改自己的域名解析部分,一般用CNAME的方式,将自己的静态资源域名指向一个CDN提供的CNAME。

而作为CDN运营商,需要对CNAME提供专用DNS解析,同时需要维护客户服务器的域名和IP地址映射列表。

CDN工作流程如下:

1.浏览器获得需要访问的资源的域名;

2.通过域名解析得到该域名指向CDN的一个CNAME;

3.为了获得IP地址,需要对CNAME进行域名解析,这时请求就会被发送到CDN的中心服务器,全局负载均衡通过预先设定的规则,同时根据用户访问的地理位置信息,把最合适的边缘服务器IP地址返回;

4.浏览器获得IP地址后,就向边缘服务器发出请求;

5.边缘服务器根据访问域名,首先搜索缓存,查看资源是否存在,存在则直接返回资源给浏览器,直接完成整个资源请求过程,否则就根据缓存内部的DNS解析得到资源实际IP地址(即客户的服务器IP地址),向该IP地址发起资源请求;

6.边缘服务器向客户服务器请求资源成功后,就把该资源加入本身的高速缓存中,并把资源发送给用户。

CDN的简单应用

其实CDN的使用并没有和我们想象中那么遥远,JQuery应该是当今Web开发领域使用最为广泛的js框架之一,很多时候我们的网站都需要引用一个jquery.min.js的引用,我们可以将这个js文件存储在自己的服务器,或者更好的选择:使用大公司的CDN服务提供的jquery.min.js. 微软和google都提供了jquery的CDN免费服务,你只需做的事情就是在项目中引用它们,就能享受CDN带来的便利。

 

Web前端性能优化教程02:使用内容分发网络的更多相关文章

  1. Web前端性能优化教程09:图像和Cookie优化

    本文是Web前端性能优化系列文章中的第九篇,主要讲述内容:图像和Cookie优化.完整教程可查看:  一. 图像优化 图像基础知识 gif: 适用于动画效果,例如提示的滚动条图案 jpg: 是一种使用 ...

  2. Web前端性能优化教程06:减少DNS查找、避免重定向

    本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看:  一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...

  3. Web前端性能优化教程08:配置ETag

    本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...

  4. Web前端性能优化教程05:网站样式和脚本

    本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...

  5. Web前端性能优化教程03:添加Expires头

    本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...

  6. Web前端性能优化教程04:压缩组件

    本文是Web前端性能优化系列文章中的第四篇,主要讲述内容:压缩组件.完整教程可查看:Web前端性能优化 基础知识 gzip编码:gzip是GUNzip的缩写,是使用无损压缩算法的一种,最早是用于Uni ...

  7. Web前端性能优化教程07:精简JS 移除重复脚本

    本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看:  一.精简javascript 基础知识 精简:从javascript代码中 ...

  8. Web前端性能优化教程01:减少Http请求

    性能黄金法则 只有10%-20%的最终用户响应时间花在接收请求的HTML文档上,剩下的80%-90%时间花在HTML文档所引用的所有组件(图片,script,css,flash等等)进行的HTTP请求 ...

  9. Web 前端性能优化相关内容解析

    Web 前端性能优化相关内容,来源于<Google官方网页载入速度检测工具PageSpeed Insights 使用教程>一文中PageSpeed Insights 的相关说明.大家可以对 ...

随机推荐

  1. 虚拟机安装的UBUNTU怎么全屏

    虚拟机下面安装了ubuntu系统,显示的屏幕只有那么一小块儿,不知道如何才能全屏,那么如何全屏呢?且看下面经验. 步骤阅读   百度经验:jingyan.baidu.com 方法/步骤 1 打开虚拟机 ...

  2. [bzoj3289]Mato的文件管理

    Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号.为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能 ...

  3. linux安装jdk 不成功,找不到版本问题

    http://www.linuxidc.com/Linux/2015-01/112030.htm 配置文件 export JAVA_HOMEexport JRE_HOMEexport CLASSPAT ...

  4. Log4net在类库中的用法

    app.config应当放置在解决方案的根目录下.具体流程如下: 第一步:应该下载log4net.dll并引入到你的项目中,下载见附件 第二步:需要配置相关的配置文件App.config或Web.co ...

  5. jQuery的prop和attr方法之间区别

    JQuery.attr(): Get the value of an attribute for the first element in the set of matched elements. J ...

  6. 后记:Cookie安全大辩论总结

    前天,我发布在博客园上的某知名电商网站的Cookie漏洞引发园友们的热议,学到了很多知识,现在整理一下其中比较激烈的技术讨论.谁对谁错每个人自己心中都有一把称,很多时候都是我无法说服你,你也无法说服我 ...

  7. Nodejs进阶:如何将图片转成datauri嵌入到网页中去

    问题:将图片转成datauri 今天,在QQ群有个群友问了个问题:"nodejs读取图片,转成base64,怎么读取呢?" 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即 ...

  8. 知乎日报win10版 - 天天读报【开源】

    业余时间写的一个知乎日报win10版客户端,支持收藏,评论,点赞等. 商店地址:https://www.microsoft.com/zh-cn/store/apps/%E5%A4%A9%E5%A4%A ...

  9. 对react的几点质疑

    现在react.js如火如荼,非常火爆,昨天抽了一天来看了下这项技术.可能就看了一天,研究的不深入,但是我在看的过程中发现来了很多疑惑,这里拿出来和那家分享讨论以此共勉. 在我接触的前端以后,让我感觉 ...

  10. SQLite剖析之内核研究

    先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对 ...