大家对CDN并不陌生,工作中或多或少都有所接触,最近也有人问到,在此对CDN相关概念和流程做下总结,希望还能对其他朋友也有所帮助。

一、什么是CDN

维基百科上是这样定义的:

CDN:内容分发网络(Content delivery network或Content distribution network)是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

对于还未了解的朋友,可能还不清楚CDN到底是啥,到底是做什么的?下面举个例子说明下:

以前还没有火车票代售点,12306.cn也只不过是最近几年才有。那时候火车票还智能在火车站的售票大厅购买,好多小县城不通火车,火车票要到市里去买,从小县城到市里去买火车票来回要花不少时间。后来小县城有了火车票代售点,可以直接在代售点购买车票,方便了很多,全市人民再也不用苦逼的排队在一个点买票了,可以分散到不同的火车票代售点。那么CDN就可以理解为分布在每个县城的火车票代售点,用户在浏览网站时,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样上海的移动用户的请求就不用千里迢迢跑到北京电信机房的服务器上了(假设源站部署在北京电信机房)。这样,CDN节点解决了跨运营商和跨地域访问的问题,访问时间大大降低,同时,大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。

二、CDN工作流程

用户访问未使用CDN缓存网站的过程为:

用户在浏览网站的时候,浏览器能够在本地保存网站中的图片或者资源文件,这样用户再次访问该网站的时候,浏览器就不用再下载全部的资源文件,减少了下载量意味着提高了页面加载的速度。

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据

下面让我们看看访问使用CDN缓存后的网站的过程:

一般来说CDN节点会包括nginx和cache两部分,nginx作负载均衡,cache作为缓存,用户请求到CDN节点后,如果cache中没有缓存用户的内容(包括真的没有或者是过期时间到了),这时候CDN节点会去源站去请求用户所需的资源,拿到数据后CDN节点会做两件事情,把数据返回给用户,并且把数据缓存在cache,这样同样的请求就可以从cache取,不需要回源了。另外你要注意,当前的CDN不会让源站来推送数据的,都是第一次去源站取,采用拉数据的方式。

对于测试人员,需要确认下网站所加载的图片等资源是否都走了CDN,看下是否为CDN域名地址,网站提速不可缺少的一部分。

当前CDN都在拼价格,不想以前被chinaCache垄断,BAT都有自己的CDN节点,对第三方CDN的依赖也在下降。就写到这吧,是否对CDN有所了解了,留言告诉我吧!

测试架构师论坛:http://www.youxitest.com


了解更多请关注微信公众号:测试架构师

                                                       


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. use vue vuex vue-router, not use webpack

    vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...

  2. 在华为oj的两个月

    一次偶然的机会,我接触到华为oj平台(http://career-oj.huawei.com/exam/camLogin.jsp),当时的心情很是兴奋,于是立马注册开通,然后迫不及待地上去做题.刚开始 ...

  3. 分布式配置管理--百度disconf搭建过程和详细使用

    先说官方文档:http://disconf.readthedocs.io/zh_CN/latest/index.html 不管是否要根据官方文档来搭建disconf,都应该看一下这一份文档.精炼清晰地 ...

  4. centos快速安装redis

    mkdir redis cd redis wget http://labfile.oss.aliyuncs.com/files0422/redis-2.8.9.tar.gz 解压 tar -xvfz ...

  5. p1221网络布线(最小生成树 Prim(普里母)算法) p1222 Watering Hole

    描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助.约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路 ...

  6. 每天一个Linux命令(22)--find命令详解

    find 一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用 name 选项: 文件名选项是 find 命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用. 可以使用某种文件名模 ...

  7. 程序点滴001_Python模拟点阵数字

    尝试过很多编程语言,写过不少程序(当然,基本上都是些自娱自乐或给自己用的工具类的小玩意儿),逐渐认识到编写程序是一个不断完善.不断优化的过程——编程首先要有一个想法(目标),围绕这个目标形成最基本的功 ...

  8. Mr.聂 带你成为web开发大牛——入门篇(上)

    作为一名IT届的后生,当初也经历过懵懂无知的实习期,对那种无力感深有体会.在这,希望能用我这几年的开发经验,让各位即将踏入或者刚刚踏入web开发领域的新人们少走些弯路.鉴于这是入门篇,下面我就从零为大 ...

  9. ci公共模型类

    我们都知道,操作数据库的方法都写在模型中.但是一般情况下,一张表往往至少对应4个操作,也就是所谓crud.那么如果20张表,所对应的模型方法,就达到了80个,重复的操作显然这已经是一个体力活儿. 那么 ...

  10. Linux的capability深入分析

    Linux的capability深入分析详见:http://blog.csdn.net/u014338577/article/details/48791953 lxd中对容器能力的限制: 普通用户不能 ...