从cdn说起

Posted Get up!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从cdn说起相关的知识,希望对你有一定的参考价值。

为什么要使用cdn

雅虎军规有一条规则建议我们是用cdn。随便在网上搜索,可以找到使用的cdn的好处。

再次强调第一条黄金定律,减少网页内容的下载时间。提高下载速度还可以通过CDN(内容分发网络)来提升。CDN通过部署在不同地区的服务器来提高客户的下载速度。如果你的网站上有大量的静态内容,世界各地的用户都在访问,我说的是youtube么?那CDN是必不可少的。事实上大多数互联网中的巨头们都有自己的CDN。我们自己的网站可以先通过免费的CDN供应商来分发网页资源。

cdn不只是可以让用户去请求到离自己最近的服务器,提高速度,他还有以下几个好处。

1. 防止本域名下的cookie在发送请求时被带过去。

如果在network下看过页面的请求,可以发现,即使是请求一张jpg的图片,也会发送同域下的cookie过去。即便是不到几k的大小,用户量大了,也是一个巨大的消耗。不论是出于加载速度还是宽带的考虑,都应该避免这种情况。这也是静态cdn的域名不与主域名一致的原因之一。

2. 防止过多请求被浏览器限制。

浏览器同域名的请求是有最大并发限制的,一般是6个。具体可以参考这篇博客。这是cdn的域名不与主域名一致的原因之二。

3. 方便缓存复用。

如果是同一个静态文件,在多个页面被加载,如果在cdn上,被客户端缓存下来,那么再打开另一个页面,也不需要再去请求,可以直接使用缓存。

说点别的

说到了cdn,就想到了一些平时开发时约定俗成的习惯。

dns预解析

估计大部分同学都会有一个文件存满了诸如以下的内容:

<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="dns-prefetch" href="http://img.jd.com" />
<link rel="dns-prefetch" href="http://static.jd.com" />

公司常常会有很多个静态资源的域名,有的时候,页面下的静态资源很可能是从许多个不同的域名下加载的。而域名解析为主机也需要时间,这时,如果我们使用dns预解析,可以加快资源的请求速度。
这需要浏览器的支持,目前主流浏览器全部支持。

合理利用缓存

雅虎军规第一条————减少http请求。
实际开发中,雪碧图、压缩捆绑css、js是我们常用的方式。但是在客户端能力越来越强的如今,其实不一定非要这么做。
举个例子,如今客户端会缓存大部分静态资源在本地,加上并发请求的原因,多个文件反而能更好的利用客户端的能力。
我认为,在项目上线时,尽可能找到复用较多的资源,单独拿出来,项目专享的js和css打包成一个文件,不失为一个更好的选择。

常用的cdn网站

bootCdn这个网站可以用来检索常用的前端项目。
七牛也有这种服务。

以上是我个人的一些理解,如有不对,敬请指教。

以上是关于从cdn说起的主要内容,如果未能解决你的问题,请参考以下文章

谈谈关于CDN缓存

CDN节点是啥

负载均衡&CDN技术,互联网人应该懂的!

VS Code中自定义Emmet代码片段

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

Java缓存学习之三:CDN缓存机制