内容分发网络 - Content Delivery Network 学习笔记-阿里云开发者社区

开发者社区> jerrywangsap> 正文

内容分发网络 - Content Delivery Network 学习笔记

简介: 内容分发网络 - Content Delivery Network 学习笔记
+关注继续查看

缓存是将文件副本存储在缓存或临时存储位置的过程,以便可以更快地访问它们。从技术上讲,缓存是文件或数据副本的任何临时存储位置,但该术语通常用于指代 Internet 技术。 Web 浏览器缓存 HTML 文件、JavaScript 和图像以更快地加载网站,而 DNS 服务器缓存 DNS 记录以加快查找速度,CDN 服务器缓存内容以减少延迟。


要了解缓存的工作原理,请考虑真实世界的食物和其他补给缓存。 1912 年,探险家罗尔德·阿蒙森 (Roald Amundsen) 从南极之旅返回途中,他和他的手下靠沿途储存的食物维持生计。这比在他们旅行时等待从他们的大本营运送补给品更有效。 Internet 上的缓存也有类似的用途;它们临时存储用户在网络上进行旅程所需的“用品”或内容。


What does a browser cache do?

每次用户加载网页时,他们的浏览器都必须下载大量数据才能显示该网页。 为了缩短页面加载时间,浏览器会缓存网页上显示的大部分内容,将网页内容的副本保存在设备的硬盘上。 这样,下次用户加载页面时,大部分内容已经存储在本地,页面加载速度会快得多。


浏览器存储这些文件,直到它们的生存时间 (TTL) 到期或直到硬盘缓存已满。 (TTL 表示内容应缓存多长时间。)如果需要,用户还可以清除浏览器缓存。


What does clearing a browser cache accomplish?

清除浏览器缓存后,加载的每个网页都会像用户第一次访问该页面一样加载。 如果第一次加载错误并被缓存,清除缓存可以让它正确加载。 但是,清除浏览器缓存也会暂时减慢页面加载时间。


What is CDN caching?

CDN 或内容交付网络将内容(例如图像、视频或网页)缓存在比原始服务器更靠近最终用户的代理服务器中。 (代理服务器是从客户端接收请求并将它们传递给其他服务器的服务器。)因为服务器离发出请求的用户更近,所以 CDN 能够更快地交付内容。


image.png


将 CDN 想象成连锁杂货店:购物者无需一路前往可能有数百英里外的种植食物的农场,而是前往当地的杂货店,这仍然需要一些旅行,但 更接近。 因为杂货店从遥远的农场储存食物,所以杂货店购物需要几分钟而不是几天。 同样,CDN 缓存“库存”出现在 Internet 上的内容,以便更快地加载网页。


当用户使用 CDN 从网站请求内容时,CDN 从源服务器获取该内容,然后保存该内容的副本以供将来请求。 只要用户继续请求,缓存的内容就会保留在 CDN 缓存中。


What is a CDN cache hit? What is a cache miss?

缓存命中是指客户端设备向缓存请求内容,并且缓存已保存该内容。 当缓存中没有请求的内容时,就会发生缓存未命中。


缓存命中意味着内容将能够更快地加载,因为 CDN 可以立即将其交付给最终用户。 在缓存未命中的情况下,CDN 服务器会将请求传递给源服务器,然后在源服务器响应后缓存内容,以便后续请求将导致缓存命中。


Where are CDN caching servers located?

CDN 缓存服务器位于全球各地的数据中心。 CDN 在遍布全球的 200 个城市拥有 CDN 服务器,以便尽可能靠近访问内容的最终用户。 CDN 服务器所在的位置也称为数据中心。


How long does cached data remain in a CDN server?

当网站用请求的内容响应 CDN 服务器时,它们也会附加内容的 TTL,让服务器知道将其存储多长时间。 TTL 存储在称为 HTTP 标头的响应的一部分中,它指定内容将被缓存的秒数、分钟数或小时数。 当 TTL 到期时,缓存会删除内容。 如果有一段时间没有请求内容,或者如果 CDN 客户手动清除某些内容,一些 CDN 也会提前从缓存中清除文件。


How do other kinds of caching work?

DNS 缓存发生在 DNS 服务器上。 服务器将最近的 DNS 查找存储在它们的缓存中,这样它们就不必查询名称服务器,并且可以立即回复域的 IP 地址。


搜索引擎可能会缓存经常出现在搜索结果中的网页,以便回答用户查询,即使他们尝试访问的网站暂时关闭或无法响应。


内容交付网络 (CDN) 是指一组地理分布的服务器,它们协同工作以提供 Internet 内容的快速交付。


CDN 允许快速传输加载 Internet 内容所需的资产,包括 HTML 页面、javascript 文件、样式表、图像和视频。 CDN 服务的受欢迎程度持续增长,如今大部分 Web 流量都通过 CDN 提供服务,包括来自 Facebook、Netflix 和 Amazon 等主要网站的流量。


正确配置的 CDN 还可以帮助保护网站免受一些常见的恶意攻击,例如分布式拒绝服务 (DDOS) 攻击。


Is a CDN the same as a web host?

虽然 CDN 不托管内容,也不能替代适当的网络托管,但它确实有助于在网络边缘缓存内容,从而提高网站性能。 许多网站难以通过传统托管服务满足其性能需求,这就是他们选择 CDN 的原因。


通过利用缓存来减少托管带宽,帮助防止服务中断并提高安全性,CDN 是缓解传统网络托管带来的一些主要痛点的流行选择。


使用 CDN 的优势

尽管使用 CDN 的好处因互联网资产的大小和需求而异,但对大多数用户而言,主要好处可以分为 4 个不同的组成部分:


(1) 缩短网站加载时间


通过使用附近的 CDN 服务器(以及其他优化)将内容分发到离网站访问者更近的地方,访问者体验更快的页面加载时间。由于访问者更倾向于点击远离加载缓慢的站点,CDN 可以降低跳出率并增加人们在站点上花费的时间。换句话说,更快的网站意味着更多的访问者将停留并停留更长时间。


(2) 降低带宽成本


网站托管的带宽消耗成本是网站的主要支出。通过缓存和其他优化,CDN 能够减少源服务器必须提供的数据量,从而降低网站所有者的托管成本。


(3) 提高内容可用性和冗余度


大量流量或硬件故障可能会中断正常的网站功能。由于其分布式特性,CDN 可以处理更多流量并比许多源服务器更好地承受硬件故障。

提高网站安全性 - CDN 可以通过提供 DDoS 缓解、安全证书改进和其他优化来提高安全性。


CDN 的工作原理

CDN 的核心是连接在一起的服务器网络,其目标是尽可能快速、廉价、可靠和安全地交付内容。 为了提高速度和连接性,CDN 会将服务器放置在不同网络之间的交换点。


这些 Internet 交换点 (IXP) 是不同 Internet 提供商连接的主要位置,以便相互访问源自其不同网络的流量。 通过连接到这些高速且高度互连的位置,CDN 提供商能够降低高速数据传输的成本和传输时间。

image.png



除了在 IXP 中放置服务器之外,CDN 还对标准客户端/服务器数据传输进行了许多优化。 CDN 将数据中心放置在全球的战略位置,增强了安全性,旨在抵御各种类型的故障和互联网拥塞。


CDN 如何改善网站的加载时间?

当涉及到网站加载内容时,用户会随着网站速度变慢而迅速流失。 CDN 服务可以通过以下方式帮助减少加载时间:


CDN 的全球分布特性意味着减少用户和网站资源之间的距离。 CDN 无需连接到网站源服务器所在的任何地方,而是让用户连接到地理位置更近的数据中心。 更少的旅行时间意味着更快的服务。


硬件和软件优化,例如高效的负载平衡和固态硬盘驱动器,可以帮助数据更快地到达用户手中。


CDN 可以通过使用缩小和文件压缩等策略减少文件大小来减少传输的数据量。较小的文件大小意味着更快的加载时间。


CDN 还可以通过优化连接重用和启用 TLS 错误启动来加速使用 TLS/SSL 证书的站点。


Reliability and Redundancy - How does a CDN keep a website always online?

正常运行时间是任何拥有 Internet 资产的人的关键组成部分。由于恶意攻击或只是流行度增加,硬件故障和流量高峰有可能导致 Web 服务器瘫痪并阻止用户访问站点或服务。


一个全面的 CDN 有几个功能可以最大限度地减少停机时间:


负载平衡将网络流量均匀地分布在多台服务器上,从而更容易扩展流量的快速增长。


即使一台或多台CDN服务器因硬件故障下线,智能故障转移也能提供不间断服务; 故障转移可以将流量重新分配到其他操作服务器。


如果整个数据中心出现技术问题,任播路由会将流量转移到另一个可用的数据中心,确保没有用户无法访问网站。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Shell脚本常见问题|学习笔记
快速学习Shell脚本常见问题
28 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12034 0
包含问题|学习笔记
快速学习 包含问题
8 0
jMeter Transaction Controller 学习笔记
jMeter Transaction Controller 学习笔记
5 0
+关注
2628
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载