内容分发网络 - 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服务器因硬件故障下线,智能故障转移也能提供不间断服务; 故障转移可以将流量重新分配到其他操作服务器。


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



相关文章
|
4月前
|
网络协议 前端开发 数据处理
|
4月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
60 0
|
4月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
42 0
|
1天前
|
网络协议 网络架构 数据格式
计算机网络学习笔记(一)
OSI七层网络模型旨在支持异构网络互联,从下到上分别为物理层(传输比特流)、数据链路层(帧传输,如交换机)、网络层(IP数据包路由,如路由器)、传输层(TCP/UDP,端到端通信)、会话层(管理会话)、表示层(数据格式转换)和应用层(用户接口,如FTP, SMTP)。每一层负责不同的通信功能,并通过协议如PPP, IP, TCP等协同工作。
|
1天前
|
缓存 网络协议 开发者
计算机网络学习笔记(三)
TCP的异常终止使用reset报文,用于强制关闭连接,不等待正常四次挥手。RST标志位设置时,发送方直接丢弃缓存,接收方无需确认。常见情况包括:尝试连接服务器未开放的端口、一方异常崩溃、收到不属于现有连接的报文、超时未收到确认报文或应用开发者优化效率。reset报文帮助释放资源,防止连接挂起。
|
1天前
|
安全 数据安全/隐私保护
计算机网络学习笔记(四)
HTTPS流程涉及服务器的公钥/私钥和客户端随机密钥。首先,客户端向服务器443端口发起请求,服务器发送公钥给客户端。客户端验证公钥后生成随机密钥(client key),用公钥加密后发送回服务器。服务器用私钥解密获取client key,然后用它加密数据成密文传回客户端。客户端用client key解密完成安全传输。
|
1月前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
35 0
|
2月前
|
域名解析 缓存 网络协议
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
37 3
|
2月前
|
消息中间件 网络协议 算法
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
32 1
|
6月前
|
存储 监控 Cloud Native
剖析Linux网络包接收过程:掌握数据如何被捕获和分发的全过程(上)
剖析Linux网络包接收过程:掌握数据如何被捕获和分发的全过程