CDN是什么?为什么要使用CDN?
本文旨在作学习记录(原回答链接放置本文最下方),作者在此基础上进行补充说明、整理论述,使其能以一种更为逻辑地清晰地方式表达出“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有什么优势? - 知乎
CDN是什么?为什么要使用CDN?相关推荐
- 《CDN 之我见》原理篇——CDN的由来与调度
2019独角兽企业重金招聘Python工程师标准>>> CDN是将源站内容分发至全国所有的节点,从而缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性的技术.它能够有效 ...
- 深圳办理cdn经营许可证_申请cdn许可证变更「深圳办理cdn经营许可证」
申请cdn许可证变更「深圳办理cdn经营许可证」伴随着互联网+的不断落地发展,智能硬件和可穿戴设备兴起,家庭互联网重度应用的普及与发展,现有的网络架构将无法承载不断增长的互联网应用和内容需求.这个时候 ...
- 腾讯云服务器和cdn,腾讯云服务器开启CDN及CDN开启HTTPS详细配置教程
买了腾讯云的双十一机子,随后备案回国,毕竟机子带宽相较于国外动不动百兆来说不是很高,只有5M,很容易就能跑满.基于腾讯云每个月赠送了60G的流量,就想到何不把这60G流量用起来,将网站从原来的llss ...
- CDN服务器是什么意思?CDN服务器搭建部署
CDN服务器是什么意思?CDN服务器搭建部署 什么叫CDN服务器? cdn服务器的优点和设计原理 CDN服务器搭建部署 一.CDN服务器搭建前打算(文中以LuManager来构建CDN虚拟主机) 二. ...
- 【十一、wordpress优化之六:CDN加速,以腾讯CDN为例】2021最详细wordpress博客建站教程(2021.03.03更新)
通过本wordpress博客建站教程系列系列文章,你可以不懂网页代码条件下,搭建一个谷歌insight测评90分的个人博客,最低费用在每年80块.本人搭建博客小站点击下面链接即可进入: ...
- cache节点、CDN的四大关键技术及CDN服务商类型
一般来讲,CDN网络主要由中心节点.边缘节点两部分构成. CDN架构导引 最简单的CDN网络只需一台负责全局负载均衡的DNS和各节点一台Cache,即可运行.DNS支持根据用户源IP地址解析不同的IP ...
- G‑Core Labs CDN: 一家被忽略的高性能CDN服务商
如想获得最佳阅读体验,请访问:G‑Core Labs CDN: 一家被忽略的高性能CDN服务商 说起 G‑Core Labs 这家公司,大部分人都表示没有听说过,只有很少一部分人表示在很早之前好像 ...
- cdn服务器性能要求,什么是CDN,CDN有哪些优点?(中科三方)
原标题:什么是CDN,CDN有哪些优点?(中科三方) 据统计,超过80%的互联网用户会重复访问20%的信息资源,这一现状给缓存技术的应用提供了先决条件. 为减少网络中冗余数据的重复传输,CDN技术应运 ...
- 十大免费CDN加速服务排行榜-国内外免费CDN服务总结
CDN全称Content delivery network,中文内容分发网络,目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘", ...
- android缓存策略跟cdn,缓存学习(五)CDN缓存(下)-CDN缓存策略、CDN缓存和浏览器缓存之间的关系、回源和回源比...
CDN缓存策略 CDN(Content Delivery network,内容分发网络),通过GSLB技术使得用户能访问到最近物理机房的文件,以节省网络时间,也就是说一份文件可能会在全国乃至全球的多个 ...
最新文章
- 春天闻香食花——品尝一顿愉悦的花餐
- 你离理想中的数据中心,只差这五步
- AtCoder AGC014E Blue and Red Tree (启发式合并)
- 人工智能必看的 45 篇论文(附下载地址)
- 她13岁自己造飞机,17岁进麻省理工,3篇黑洞论文被霍金引用......
- 在线考试系统需求分析
- list 转换成datatable
- commands moudle on python will replace with subprocess on py3.0
- ubuntu16.04中ROS-Kinetic报错: not find a package configuration file provided by “gazebo_ros_control“
- 2019.01.01洛谷 P4725/P4726 多项式对数/指数函数(牛顿迭代)
- 华三交换机配置定时重启任务
- Java常见异常类【整理】
- 力士乐电源模块故障代码_REXROTH DRIVE博士力士乐伺服驱动器故障代码大全
- win10在哪里找到计算机,win10计算器在哪里?win10怎么调出计算器?
- C++ 灰度图像伪彩色处理
- 怎么同时给多个 Word 文档批量添加自定义的文字和图片水印
- 台式电脑怎么调分辨率_电脑屏幕分辨率调节方法
- 邓俊辉《数据结构》-向量学习笔记
- matlab画一元函数图
- 曾国藩:利可共而不可独,谋可寡而不可众