CDN是什么?为什么要使用CDN?

本文介绍了CDN(Content Delivery Network)的工作原理及其在网站优化中的作用。通过HTML文件引用的示例,阐述了资源的本地引用与外部引用方式,当系统访问量增大导致速度下降时,CDN通过在用户与服务器间设置缓存节点,减少延迟,提高用户体验。CDN的优势在于解决网络拥塞,加快响应速度。
摘要由CSDN通过智能技术生成

       本文旨在作学习记录(原回答链接放置本文最下方),作者在此基础上进行补充说明、整理论述,使其能以一种更为逻辑地清晰地方式表达出“CDN是什么?”的理解,可作对CDN是什么的简要了解。 

一、HTML的文件引用:       

        HTML的文件头(也有文件中,文件尾)那边常有其他文件引用,比如CSS以及JS的引用。就以bootstrap常用的引用来举个例子,你常见的引用可能会是这样的:

<head>
    <title>Mushroom</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <!-- 引入 Bootstrap -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
    <script src="/js/jquery.min.js"></script>
    <!-- 包括所有已编译的插件 -->
    <script src="/js/bootstrap.min.js"></script>
</head>

        这之中,<script src="/js/bootstrap.min.js"></script> 这段就是外部脚本文件的一个链接,当前的这种链接是相对URL,指向站点内的文件,即你本项目里对应路径下面放置的文件。可以在 HTML <script> 标签的 src 属性 查看这个标签的具体属性。

属性值
值 描述 
URL 外部脚本的 URL。可能的值有:

•绝对 URL - 指向其他站点(比如 src="www.example.com/example.js")
•相对 URL - 指向站点内的文件(比如 src="/scripts/example.js")

        通过查看可以得知,URL的引用有两种方式,绝对和相对,绝对的方式就是直接引用其他站点的js地址,比如我把上方的引用改为

<script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>

        这样即是引用其他站点的js。CSS文件的引用与此类似:HTML <link> 标签的 href 属性。图片以及其他文件的引用也类似,不赘述。

二、系统的资源引用

        在一个网站项目中,页面里经常会有许多js以及css的引用,接触过开发项目的一般都会了解,大部分界面里的脚本引用并不是像第一步里的那么精简,如果是直接引用项目内文件的话,他们可能是这样的:

<SCRIPT src="/iforums/templates/default/js/common.js" type=text/javascript></SCRIPT>
<SCRIPT src="/iforums/templates/default/js/ajax.js" type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript src="/iforums/ueditor/third-party/jquery-1.10.2.min.js"></SCRIPT>
<SCRIPT type=text/javascript src="/iforums/ueditor/ueditor.config.js"></SCRIPT>
<SCRIPT type=text/javascript src="/iforums/ueditor/ueditor.parse.js"></SCRIPT>
<SCRIPT type=text/javascript src="/iforums/ueditor/ueditor.all.js"></SCRIPT>

        可能甚至引用的更多,这样将资源文件与业务代码一锅炖的方式适用于小型的,应用服务器压力并不是太大的系统(并发、带宽、存储空间、资源等等)。这种方式的优点是开发省力,发布省力,对服务器要求小,省钱,没有具体公网接入需求。许多小型,内部使用型的网站系统往往采取这种形式放置资源文件。

三、系统访问量变高了,速度变慢了怎么办

        怎么办?优化系统部署呗。
        怎么优化?优化方式有很多,读写分离,负载均衡,这方面的东西可以讲上三天三夜。具体到本问题的范畴内,那就是资源服务器应用服务器的分离。粗暴的理解方式就是,就是应用放置于应用服务器(一台或者是集群),资源放置于在资源服务器(一台或者是集群),这时候,js以及css的引用就需要更改为绝对URL,指向对应的资源服务器。

四、CDN的工作实例

        与传统访问方式(即客户端→服务器)不同,CDN网络则是在用户和服务器之间增加缓存节点(或叫边缘节点),根据节点路径和节点负载程度,将用户的访问请求引导到最优的缓存节点而不是服务器中心节点(或叫源站点),从而加速访问速度。若缓存节点没有目标资源,则向中心节点发出请求,将请求后的资源复制到自身节点中,并返回请求后的资源给客户端。理解如下图。

        优点简括:解决Internet网络拥堵状况,提高用户访问网络的响应速度。

 五、参考

        参考内容:CDN是什么?使用CDN有什么优势? - 知乎

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值