用CDN的七个理由

  1. 浏览器从服务器上下载css、js和图片等文件时都要和服务器连接,而大部分浏览器对同一个域名用于下载文件的并发连接数限制在4个,这意味着如果要下载第五个文件就必须等前四个文件中有一个已经加载完成,假如前4个文件都很大,第五个文件就要等很久,整个网页的加载速度就受限于此了。用CDN就可以通过不同的域名来加载文件,从而使下载文件的并发连接数大大增加。
  2. jQuery一类的库文件现在被广泛使用,如果访问你网站的用户的浏览器之前在访问别的网站时通过和你相同的CDN已经加载了jQuery,由于jQuery文件已经被缓存了,就不用重新下载了。
  3. 也许你的网站主机性能很好,但是应该不会比Google、Microsoft和Yahoo等大公司的容量和可扩展性更高,他们提供的CDN具有更好的可用性,更低的网络延迟和丢包率。
  4. CDN能提供本地的数据中心,这样一来,那些远离你网站主服务器的用户也能就近很快地下载文件。
  5. 让你能够连接到特定版本的css文件或者js库文件,可以根据需求请求最新的版本。
  6. 很多商业付费的CDN能提供使用报告,这可以作为你自己网站分析报告的补充。
  7. CDN能够分配负载,节省带宽,提高你网站的性能,降低你网站托管的成本,通常是免费的。

不用CDN的七个理由

  1. 在开发阶段如果处在断网环境下,CDN文件是无法加载的。
  2. 一些免费CDN提供的文件可能是功能完整的包或者库文件, 可能超过几百kb的大小,而许多时候网站只需要使用其中部分,你可以使用自己优化过、更小的css和js文件,让用户下载和执行的更快,当然你可以把自己的文件放到私人的CDN上,但这会需要额外的工作量和花费。
  3. 尽管一些流行的CDN文件事先缓存过的几率较大,但并不是一定的,一些移动设备的缓存可能很小而且效率很低,CDN的优势就不明显了,特别是当你可以在本地服务器上存放比CDN文件更小的文件时。
  4. 由于地理、法律、政策和商业上的阻隔,你所在的地区可能屏蔽了一些流行的免费CDN服务的域名或者IP地址。
  5. CDN会有出故障的时候,这时候要有备用方案,也就是你的本地文件,这种处于稳定考虑的冗余会增大开发工作量和复杂度。
  6. 如果安全性对你的网站很重要,就不要使用公共的CDN,因为当你远程从CDN请求文件时,你的访问来源信息也被发送过去,一些远程的js文件可能被修改用来搜集你的用户或者系统信息,而当你使用https协议时,能选择的CDN就更加有限。
  7. 当你把文件控制交给Google、微软、亚马逊或者其他大的互联网公司时,你会考虑他们对你信息的搜集整理吗,这也许是多虑了,但是在互联网这一行里多一点这样的怀疑并不坏。

你到底要不要用CDN呢

  1. 几种明确不该用CDN的情况:

    1. 你构建的是内部网络应用,不与外部Internet连接;
    2. 像银行系统这样的应用,安全和隐私是最优先考虑的,就要让所有源文件和服务器位置完全处于自己掌控中;
    3. 你为公司或者国家开发的应用,而他们恰好对某些CDN的域名或者IP地址限制访问。
  2. CDN对低流量的小网站性能提升并不明显,如果没有需要高带宽的视频、音频文件,把你的文件放在一起可能还更简单。

  3. 对流量高的网站,CDN可以大大提升性能,但假如你的用户以移动设备为主,可能自己优化过的小文件比CDN上的大文件要下载和执行的更快。

  4. 在实际中通过JavaScript搜集用户分别使用CDN文件和本地服务器文件时加载页面的速度,以决定一段时间内是选择CDN还是本地文件。

  5. 对于重要的文件,最好还是提供本地文件的冗余,以应对CDN文件不可用的情况。以jquery为例:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery1.4.3/jquery.min.js"></script> <script>!window.jQuery && document.write("<script src=\"scripts/jquery-1.4.3.min.js\">" + "<\/scrript>")

    这里通过判断window.jquery全局对象是否存在来判断jQuery是否通过CDN加载成功,不成功就通过document.write方法来加载本地的jQuery文件,注意这里用到了转义字符‘\’避免浏览器将document.write方法内的“</script>”当成了结束标签。

  6. 一些对系统并不是至关重要的文件诸如字体文件、css重置、js小插件、背景图片等可能适合使用CDN,因为即使CDN文件不可用,网站也能做到平稳退化。

总结

看到这里,我想你也觉得CDN是好的,只是要把它用好,还是应该遵循前面讲到的一些原则,简单的说,在实践中,一些流行的库文件和字体文件使用CDN是好的,对于大型网站来说,使用私有CDN也能极大提升速度和降低成本,但如果你的应用对安全、隐私和可靠性要求较高,那就要在CDN的性能提升和安全考量之间做一下权衡了。

转载于:https://www.cnblogs.com/dhsz/p/6908052.html

CDN——到底用还是不用?相关推荐

  1. CDN到底是什么?浅析一下CDN内容分发网络

    CDN到底是什么?内容分发网络? 一.CDN的解释 二.CDN的作用 三.CDN的工作原理 四.CDN访问与传统访问的区别 五.CDN应用场景 六.关于CDN的一些常见名词 一.CDN的解释 CDN的 ...

  2. CDN到底是个什么鬼?看完这篇你就懂了!

    最近在了解边缘计算,发现我们经常听说的CDN也是边缘计算里的一部分.那么说到CDN,好像只知道它中文叫做内容分发网络.那么具体CDN的原理是什么?能够为用户在浏览网站时带来什么好处呢?解决这两个问题是 ...

  3. 七牛云融合CDN到底怎么配置?

    人生如戏,你得先有故事. --老李 由于来年头一个月公司产品接入了一个旅游项目,为了保证系统的稳定性,必须要对现有架构进行改进以应对大流量的冲击. 那么问题来了?怎么改? 首先,我得清楚项目目前的瓶颈 ...

  4. Incapsula CDN到底好在哪

    估计很多人听过Incapsula的名字,只是了解不甚多. CDN-内容分发网络,Incapsula CDN是覆盖全球的分布式数据中心系统,利用盏路灯为服务器的全球网络,采用只能缓存和缓存控制选项以及内 ...

  5. 前端CDN资源库,再也不用担心vue首次加载慢的问题了,vue项目必备cdn加速

    试了好多个cdn资源库,可能跟国内外有关系吧,整体测试下来BootCDN的速度相对来说挺快的,支持一下 unpkg.com/一个内容源自 npm 的全球快速 CDN 好慢呐 unpkg.com 引用的 ...

  6. CDN行业“三足鼎立”格局已定,谁能代表未来?

    在过去的十几年间,作为互联网行业的一项基础设施, CDN(网络内容分发)行业一直都风平浪静,绝大份市场被网宿.蓝汛等传统CDN厂商牢牢占据.不过,在近几年,行业开始掀起波澜,先是阿里云.腾讯云等云服务 ...

  7. html页面缓存纪txt,cdn缓存的html静态页未更新小记

    今天遇到一个html静态页面始终不更新的问题,抽空找了下原因. 现象:上线了一个静态页面,强刷.清理浏览器缓存都无法更新资源.显然不是浏览器的问题,应该是cdn这边的缓存没更新.https://app ...

  8. 阿里云CDN产品经理陈章炜:边缘创新技术和落地实践

    简介:CDN除了加速外,不断被赋予更多价值.在阿里云CDN推出的<极速奔跑吧 2021>首场直播中,阿里云架构师和产品经理不仅对近期阿里云发布的CDN产品最佳实践图进行了详细解读,还对CD ...

  9. 移动端视频缓存保障与CDN调度优化

    本文由网易云信资深音视频客户端工程师张根宁在LiveVideoStackCon 2019上海音视频技术大会的演讲整理而成,张根宁分享了团队在线视频播放器优化的主要方向,即缓冲和卡顿问题.对于卡顿,可以 ...

  10. 阿里云ACE认证之理解CDN技术

    学习参考资料 CDN学习笔记 CDN架构以及原理分析 深入理解CDN的概念 我们要深入理解CDN技术,首先我们得找到线头,剥丝抽茧最终理解CDN到底是一个什么样的东西,或者说是什么样的一个概念 CDN ...

最新文章

  1. 一位海外华人的质问:谁在误导中国人艳羡美国?
  2. 在腾讯云轻量云服务器上搭建mysql数据库
  3. GitHub宣布GitHub Education 新计划,学校可免费用企业版
  4. 利用fastjson对json转map的操作
  5. 帆软所有销量为0的显示为空值_爆品秘籍?—线上三亚跟团游销量影响因素分析...
  6. 【转】赶集网mysql开发36军规
  7. 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条
  8. 纯前端控件集 WijmoJS 2018V2发布,提供可视化设计器,在React、Vue和Angular中的更易用...
  9. python的文件夹里面有什么_Python的文件及文件夹操作
  10. 李兴华java开发百度网盘_魔乐科技MLDN-李兴华老师零基础学Java系列教程 百度网盘...
  11. 影响电缆特性阻抗的三个方面
  12. Android信任Https自签名证书详细教程
  13. diskpart命令磁盘分区
  14. 浅谈你们根本不懂的区块链游戏
  15. 机器学习-华为mindspore入门-波士顿房价回归
  16. 转:数据可视化之美:经典案例与实践解析
  17. 2021-05-28 aps助油田服务与设备行业实现数字化
  18. EDG夺冠时刻,微帧助力虎牙打造极佳观看体验
  19. 如何利用Google搜索客户
  20. 阿里云轻量应用服务器基于CentOS系统镜像快速部署Apache服务

热门文章

  1. 如何在 Mac 上使用“旁白实用工具”自定“旁白”?
  2. iOS开发之将base64位编码的字符串转换为图片,data转图片,图片转data
  3. JProfiler 12 for Mac(Java开发分析工具)
  4. 99个wordpress经典插件
  5. MySQL max_allowed_packet
  6. 面向业务的企业元数据管理
  7. 关于Socket踩过的一些坑
  8. ORACLE 11g r2   RAC 安装实施规划
  9. SQL Server 2008入门系列之设置数据库服务器的访问权限
  10. 自定义tooltip