为什么要使用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说起的更多相关文章

  1. 百度MIP移动页面加速——不只是CDN

    MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...

  2. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  3. 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)

    网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...

  4. Signalr系列之虚拟目录详解与应用中的CDN加速实战

    目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...

  5. CDN模式介绍

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; }        CDN(content delivery networ ...

  6. 前端CDN公共库

    通过使用公共的CDN脚本和样式库,可以在一定程度上加速访问.节省服务器流量.提升你的网站用户体验.本文将介绍国内比较常用的几种免费的CDN库,包括百度.新浪.360.又拍和七牛等. 百度CDN公共库 ...

  7. 百度CDN

    地址如下: http://cdn.code.baidu.com/

  8. 推荐一些国内的Jquery CDN免费服务

    Jquery是个非常流行的JS前端框架,在很多网站都能看到它的身影.很多网站都喜欢采用一些Jquery CDN加速服务,这样网站加载jquery会更快.之前火端网络的一些网站都是使用Google的jq ...

  9. 【转】《从入门到精通云服务器》第七讲—负载均衡和CDN技术

    在IDC知识中,我们常常会遇上负载均衡与CDN的概念而不知所云.第一讲[什么是云计算], 我们提到过负载均衡,仅给大家留下了印象.这次我们将深入浅出的讲讲到底什么是负载均衡与CDN技术.---互联网数 ...

  10. bootstrap之CDN

    bootstrap之CDN CDN是Content Delivery Network的缩写,简单的说就是Bootstrap把自己的css.Js等文件托管到某一个网络服务器上使用时调用.如果与Inter ...

随机推荐

  1. Interface request structure used for socket ioctl's

    1. 结构体定义 /* * Interface request structure used for socket * ioctl's. All interface ioctl's must have ...

  2. vmware虚拟机安装CentOS-6.5教程

    linux是企业最常用的服务器系统之一,CentOS是免费的,所以用的企业也挺多,今天给大家分享怎么在自己电脑的虚拟机中安装CentOS-6.5,以便用来玩耍,没事的时候可以学学linux的一些知识. ...

  3. [置顶] win10 uwp 参考

    态度随意申请专栏,没想到通过 看了我的博客,都是在别的大神博客看到,然后修改他们的 我看到的大神博客 东邪独孤 http://www.cnblogs.com/tcjiaan/ 老周,买了他的<W ...

  4. 开始Java8之旅(四) --四大函数接口

    前言   Java8中函数接口有很多,大概有几十个吧,具体究竟是多少我也数不清,所以一开始看的时候感觉一脸懵逼,不过其实根本没那么复杂,毕竟不应该也没必要把一个东西设计的很复杂. 几个单词   在学习 ...

  5. flask + wtform + google storage

    项目需要使用 flask 上传.下载文件到 google storage 上, 搜了一圈没有能直接结合 wtform 使用的插件,所以动手造了个轮子. 只实现了基本的上传,下载的功能,后续可能会完善预 ...

  6. 加载web项目时报的错误:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul

    用eclipse开发的java项目不能加载到tomcat6.0服务器,原因是:jst.web的版本高了 <installed facet="jst.web" version= ...

  7. LeetCode 121. Best Time to Buy and Sell Stock (买卖股票的最好时机)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  8. 为什么C++没有对应realloc的new操作符呢?

    http://blog.csdn.net/rabbit729/article/details/3400260 这个用memcpy明显是有问题的.如果类有资源分配的话,直接memcpy不能复制资源,会导 ...

  9. 对于Swift的Enum,文档上没有说的

    今天无意发现一个东西, 但是在文档上看了很多遍都没找到, 但是亲测是可行的, 那到底是什么呢? 以前我们定义枚举 会这样: enum Hello { case Item( String, Int) c ...

  10. 关于php加密库加密数据上传数据库或解密出错的问题

    php加密拓展库随着php版本的更新,函数的使用方法有所改变,所以加密模式推荐使用ecb,其中加密算法19种,加密模式8种,通过这种方式加密后的数据上传数据库后提取出来进行解密会发现结果是乱码,我认为 ...