CDN是一个致力于使内容传输更快、更高效的针对webserver的全局分布式网络。通过CDN来复制使这些内容能够在非常多地方同一时候存在。

比較有名的CDN厂商有AKamari,Amazon Cloudfont以及Edgecast。

为什么CDN会存在?最根本的原因...获得更好的用户体验。并且第二层优点是能够使网络资源更有效的被利用。

CDN主要使用双方面的技术来实现:

  • 保持重要的内容分布在多个全局的分布式数据中心。从而使关键数据离终端用户更近,也使得下载起来更快。

  • 使用基于内容类型的服务端优化技术能够使用户以最高效的方式获取须要的内容。

首先让我们看一下通常情况下webserver是怎样向用户浏览器数据传输的。

  • 用户发出请求来下载一个web页面,这一般是通过点击一个链接来请求。

  • 用户浏览器发送一个请求到webserver来请求对应内容。

  • webserver開始回传所请求页面的全部内容。这通常包含很多独立的资源。

很easy的东西。

普通情况下,和用户请求相关的内容都会去同一个webserver上请求,而请求者(如:浏览器)则不关心所请求内容的位置和类型。对于真正的大型站点来说或许会有一个负载均衡的webserver池,可是再从普通情况来看,这些webserver都在同一个数据中心。

但 是在简单的表象之下,还有非常多事情要做。须要有一个DNS解析器来获取webserver的ip地址。webserver通常须要回传很多不同类型的内容到浏览器。 如:图片、JavaScript脚本、CSS、文本文件、视频以及页面包括的全部其它内容。

一个典型的web页面会包括非常多这种内嵌资源并且都会发送到 浏览器--通常有超过60个不同的文件要读取,有时在一个请求中会包括超过100个资源文件!此外。有的请求为了可以渲染出所请求的内容还须要浏览器去做 一些额外的请求操作。

我们能够将所请求的内容分成下面几种不同的类型:

  • 动态内容:这些内容是由webserver通过如php,ruby或者java等web编程语言凭空生成的。

  • 静态内容:这些内容一般是常常变化并且不须要生成。图片、CSS样式文件、javascript脚本文件都属于这类内容。

  • 流媒体内容:视频或音频等须要浏览器来控制播放的文件。

这 些类型的文件差别太大以致于没有一个server可以非常好的为全部类型的文件提供服务。

每种类型的文件都有不同的要求和优化方式。动态内容须要占用server大量的 内存和CPU资源。却非常少占用带宽;静态内容和流媒体内容恰恰相反,占用相对较少的内存资源,却占用非常大带宽。假设非要在同一台server上来处理两个场景将 会使双方面都会变的更糟:webserver一方面要载入动态内容须要的内存,还有一方面为所须要的非动态内容做准备。至少对同一台server来说,这双方面不能同一时候 做到最好。

(未完。待续。。

。)

1. 本文由程序猿学架构翻译

2. 本文译自Performance Blog: Content Delivery Networks (CDN) Explained

3. 转载请务必注明本文出自:程序猿学架构(微信号:archleaner
)

4. 很多其它文章请扫码:

CDN具体解释(篇一)的更多相关文章

  1. CDN具体解释(篇二)

    还有还有一个问题就是全部的内容都放在同一个地方.假设我们的server在芝加哥,那么美国中西部的人们訪问server的响应时间和用户体验就比香港.德国.南非以及佛罗里达州的用户好.由于那些用户离ser ...

  2. 程序员要搞明白CDN,这篇应该够了

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

  3. Android开发四大组件之Service(具体解释篇)

    Android开发之四大组件--Service 一.Service 简单介绍 Service是android系统中的四大组件之中的一个(Activity.Service.BroadcastReceiv ...

  4. ReactiveCocoa概念解释篇

    1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Coco ...

  5. iommu系列之---概念解释篇

    本文会对iommu中的一些容易引起疑惑的概念进行阐述,内核版本为4.19. 先上简写: DMAR - DMA remapping DRHD - DMA Remapping Hardware Unit ...

  6. 看上去很美 国内CDN现状与美国对比

    CDN的理想与现实 多年以前,当<Kingdom of Heaven>这部史诗电影发行的时候,中国的影迷使用电驴和BT来寻找种子,而那个时候,高清也才刚刚进入电影领域,我的同事不惜用自家的 ...

  7. 雅虎(yahoo)前端优化十四条军规

    第一条.尽可能的减少 HTTP 的请求数 (Make Fewer HTTP Requests ) http请求是要开销的,想办法减少请求数自然可以提高网页速度.常用的方法,合并css,js(将一个页面 ...

  8. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  9. Yahoo前端优化十四条军规

    相信互联网已经越来越成为人们生活中不可或缺的一部分.Ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功能. 比如Google机会已经把最基本的office应 ...

随机推荐

  1. 【10.9校内练习赛】【搜索】【2-sat】【树链剖分】【A_star k短路】【差分约束+判负环】

    在洛谷上复制的题目! P3154 [CQOI2009]循环赛 题目描述 n队伍比赛,每两支队伍比赛一次,平1胜3负0. 给出队伍的最终得分,求多少种可能的分数表. 输入输出格式 输入格式: 第一行包含 ...

  2. 对于asp.net mvc异步查询

    如何做MVC异步查询,做列表页面. 查询是项目中必不可少的工作,而且不同的项目不同的团队,都有自己的简单方法.Asp.net mvc 有自己独特的优势,下面是结合mvc实现一个产品列表的Demo. 问 ...

  3. Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务系统的集成

    集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...

  4. 使用邮件和RSS两种方式,订阅博客更新通知

    分类: 系统运维 点击订阅按钮,可以订阅本博客的更新 输入您的邮件地址,可以订阅本博客的更新通知,及时了解最新内容 使用RSS,订阅-马二进三名人传记-博客 也许大家是第一次听到RSS这个概念,那什么 ...

  5. Towelroot v3.0版发布 将支持更多设备 Towelroot v3.0下载

    Towelroot虽然已经发布一段时间了,虽然所Towelroot可以一键ROOT很多设备,虽然它只有100多K.不过还是有一小部分的机型没办法ROOT成功的,也不知道什么原因.不过不用担心,Geoh ...

  6. 垃圾收集简介 - GC参考手册

    http://blog.csdn.net/column/details/14851.html

  7. Mac 安装 brew

    安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...

  8. 怎么上传自己的代码/项目到自己的github仓库上

    创建新的git仓库   设置新仓库   创建完成后   复制git地址   现在已经有window git客户端了(地址:https://desktop.github.com/),但还是建议用git命 ...

  9. DIV元素不换行

    DIV盒子默认是换行独占100%宽度:DIV盒子没有赋予CSS样式时,默认DIV盒子是独占一行(宽度为100%). 如下默认情况HTML代码: <!DOCTYPE html> <ht ...

  10. Strings of Power

    B. Strings of Power Volodya likes listening to heavy metal and (occasionally) reading. No wonder Vol ...