CDN原理与应用简要介绍

CDN的全称是Content Delivery Network(内容分发网络或内容交付网络)。CDN是构建在现有网络基础之上的智能虚拟网络,CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取内容,降低网络延迟,提高访问速度。CDN的关键技术主要有内容存储和分发技术。简单来讲,CDN是用来进行加速的,它可以让用户更快获得所需的数据。

CDN的基本原理

CDN的基本原理是在用户访问相对集中的地区和网络设置一些缓存服务器。当用户访问网站时,利用全局的负载均衡技术将用户的访问指向距离最近的缓存服务器,由缓存服务器代替源站响应用户的访问请求。这样一方面减轻了源站服务器的工作压力,另一方面使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

CDN相关技术

CDN实现需要依赖多种网络技术,如负载均衡技术、动态内容分发与复制技术、缓存技术等是其中最主要的几种网络技术。

(1)负载均衡技术

负载均衡技术就是将网络中的流量尽可能平均分配到多个能完成相同任务的服务器或网络节点,由此来避免单个或部分网络节点过载瘫痪,影响正常的网络访问。

(2)动态内容分发与复制技术

在多数情况下,网站响应速度和访问者与网站服务器之间的距离有着密切的关系。如果访问者和网站之间的距离果园,之间的融信要经过多次路由转发和处理,网络延迟会大大增加。而内容分发和复制技术就是将网站主体中的大部分静态页面、图像和流媒体数据等分发复制到各地的加速节点上。所以,动态内容分发与复制技术也是CDN所需的一个重要技术。

(3)缓存技术

缓存技术已经不是一种新鲜技术。Web缓存服务通过几种方式来改善用户的响应时间,如代理缓存服务、透明代理缓存服务、使用重定向服务的透明代理缓存服务 等。通过Web缓存服务,用户访问网页时可以将广域网的流量降至最低。对于公司内联网用户来说,这意味着将内容在本地缓存,而无须通过专用的广域网来检索 网页。对于Internet用户来说,这意味着将内容存储在他们的ISP的缓存器中,而无须通过Internet来检索网页。这样无疑会提高用户的访问速度。CDN的核心作用正是提高网络的访问速度,所以,缓存技术将是CDN所采用的又一个主要技术。

CDN有哪些优点?

(1)本地Cache加速,提高了访问速度;

(2) 跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量;

(3)远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器

(4)自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点web服务器负载等功能;

(5)广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵。

简单地说 CDN是一组分布在世界各地不同地理位置的服务器,以实现网站内容的快速交付。当用户使用CDN访问网站时,浏览器会连接到其中一个边缘服务器并向其请求网站内容。选择的服务器通常是最靠近最终用户的服务器,以减少时间延迟。多个缓存服务器的使用分散了流量并防止了服务器过载。What Is CDN? Learning All About Content Delivery Networks

CDN - 术语表 | MDN

CDN被广泛用于传输 stylesheets 和 JavaScript 等静态资源,像Bootstrap、Jquery 、vue.js等。

CDN应用

光看上面的介绍可能觉得比较抽象,其实在我们的网页中也可以使用这个技术,下面结合实例简要介绍之,为此先复习一下HTML 的<script> 、<link>标签。

<script> 标签

<script src="URL">

HTML <script> 标签的 src 属性用于指定外部脚本文件的 URL。

URL可能的值有:

绝对 URL - 指向其他站点(比如 src="www.example.com/example.js")。

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

<link>标签

<link href=" URL " rel="stylesheet"/>

其中“rel=stylesheet”,rel是关联的意思,关联的是一个样式表(stylesheet)文档,它表示这个link在文档初始化时将被使用。rel是Relations的缩写,指关联到一个stylesheet(样式表单)。

Bootstrap

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。它简洁灵活,使得 Web 开发更加快捷。主要分为三大核心目录:css(样式)、js(脚本)、fonts(字体)。

bootstrap官网

Bootstrap · The most popular HTML, CSS, and JS library in the world.

Bootstrap中文网

Bootstrap中文网

Bootstrap v5 中文文档 · Bootstrap 是全球最受欢迎的 HTML、CSS 和 JS 前端工具库。 | Bootstrap 中文网

网页中使用Bootstrap方法有二:

一是官网您可以从 http://getbootstrap.com/ 上下载 Bootstrap使用。Bootstrap文件夹包含bootstrap.min.js 和 bootstrap.min.css 文件,只要把html网页文件与Bootstrap文件夹放在一起,然后用相对路径引用jquery.js、bootstrap.min.js 和 bootstrap.min.css 文件即可。

二是从 CDN 中载入Bootstrap,即在线尝试,下面的例子用到了https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css

通过CDN使用Bootstrap例子源码如下:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"> <title>在线尝试 Bootstrap</title><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script>
</script>
</head>
<body>
<h3>使用在线Bootstrap产生的不同样式的按钮</h3>
<button type="button" class="btn btn-default">默认按钮</button>
<button type="button" class="btn btn-default btn-lg">大的默认按钮</button>
</body>
</html>

运行效果如下图:

运行效果如下图:

jQuery

jQuery 是一个 JavaScript 库。jQuery的字面意思其实就是JavaScript和查询(Query),即用于辅助开发JavaScript的库。

网页中使用 jQuery方法有二:

一是官网https://jquery.com/download/ 下载 jQuery 库使用。

二是从 CDN 中载入 jQuery,下面的例子用到了https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js

通过CDN使用jQuery的例子源码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>通过CDN使用jQuery</title>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function(){$("button").click(function(){$("p").hide();});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<button>点我隐藏段落</button>
</body>
</html>

运行效果如下图:

vue.js

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。

vue.js英文 Vue.js - The Progressive JavaScript Framework | Vue.js

vue.js中文 Vue.js - 渐进式 JavaScript 框架 | Vue.js

网页中使用vue.js方法有二:

一是从官网 Vue.js 的官网上直接下载 vue.min.js 并用 <script> 标签引入。

二是使用 CDN 方法载入,

关于Vue.js入门可见 Vue.js入门教程(适合初学者)_软件开发技术爱好者的博客-CSDN博客_vue.js教程

在此不多介绍了。

CDN原理与应用简要介绍相关推荐

  1. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中

    MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...

  2. 简要介绍 | 交叉熵损失:原理和研究现状

    注1:本文系"简要介绍"系列之一,仅从概念上对交叉熵损失进行非常简要的介绍,不适合用于深入和详细的了解. 注2:"简要介绍"系列的所有创作均使用了AIGC工具辅 ...

  3. 导向滤波python_导向滤波(Guided Filter)简要介绍

    1.介绍 提到导向滤波,首先想到的是"何恺明",他的确是真大神,在图像领域,是中国人的骄傲,深度学习流行的时候,也是提出各种新算法,比如ResNets,而最近两年,深度学习的发展已 ...

  4. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划

    在Android系统中,提供了独特的匿名共享内存子系统Ashmem(Anonymous Shared Memory),它以驱动程序的形式实现在内核空间中.它有两个特点,一是能够辅助内存管理系统来有效地 ...

  5. Android进程间通信(IPC)机制Binder简要介绍和学习计划

    在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中.那么,不在同一个进程的 ...

  6. Android应用程序组件Content Provider简要介绍和学习计划

    在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口.前面的一系列文章已经分析过Android应用程序的 ...

  7. Dalvik虚拟机简要介绍和学习计划

    出自:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应 ...

  8. 简要介绍BASE64、MD5、SHA、HMAC几种方法。

    加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     ...

  9. Android WebView简要介绍和学习计划

    我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就 ...

最新文章

  1. pyqt5如何循环遍历控件名_利用Python的PyQt5编写GUI界面教学,QT5还是比较难的
  2. 掌握房贷技巧可让你少奋斗十年(收藏)
  3. 【数据分析】数据分析基础:SQL重要知识点梳理!
  4. 解读Android LOG机制的实现
  5. Ext.form.field.ComboBox组合框
  6. spring创建web项目_使用Spring WS创建合同优先的Web服务
  7. python args kwargs 理解_*args和**kwargs在python中的作用
  8. .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表
  9. 奇安信代码安全实验室帮助微软修复两个“重要”漏洞,获官方致谢
  10. windows下的IO模型之完成端口
  11. Discuz!客户端api开发(一)
  12. 电视盒子cpu天梯图 电视盒子CPU性能天梯图2022
  13. 抖音短视频的用户来源和活跃时间
  14. 什么是机器学习里的优化?
  15. Matlab | 车辆路径规划应用实例(含源码)
  16. 第三章 国外信托公司业务
  17. 【RL】3.基于表格方法求解RL
  18. 学习编程需要了解什么基础知识
  19. Ubuntu16.04LTS上安装QQ,QQ音乐
  20. sap fi清账函数POSTING_INTERFACE*的使用

热门文章

  1. CI框架整合PHPExcel方法
  2. Windows和Linux 行尾符(EndOfLine)的区别
  3. 第七届杭州全球企业家论坛大健康分论坛即将举办,敬请关注!
  4. js小数加减乘除计算不准
  5. 虚拟化--002 HVM提示
  6. 浅析前端状态管理Redux Mobx Vuex
  7. MySQL问题:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  8. 深度学习中的sigmod函数、tanh函数、ReLU函数
  9. Linux-lrzsz命令及原理
  10. 安装stable-diffusion时gfpgan安装失败