缓存是将文件副本存储在缓存或临时存储位置的过程,以便可以更快地访问它们。从技术上讲,缓存是文件或数据副本的任何临时存储位置,但该术语通常用于指代 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 能够更快地交付内容。

将 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 提供商能够降低高速数据传输的成本和传输时间。

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

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

更多Jerry的原创文章,尽在:“汪子熙”:

内容分发网络 - Content Delivery Network 学习笔记相关推荐

  1. 前端学习笔记-内容交付网络 Content delivery networks (CDNs)

    文章主体来自 https://web.dev/content-delivery-networks/ 的节选及翻译 文章目录 资源交付 Resource delivery 缓存 Caching 向缓存添 ...

  2. CDN(Content Delivery Network)内容分发网络

    CDN的全称是Content Delivery Network,即内容分发网络. 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. 通过在网络各处放 ...

  3. CDN(Content Delivery Network)内容分发网络从入门到与实战

    目录 一.简介 二.加速原理 三.应用场景 3.1 网站加速 3.2 文件下载加速 3.3 点播加速 3.4全站加速 四.一些基本概念 五.实战 5.1 开通CDN服务 5.2 添加加速域名 5.3 ...

  4. 阿里云CDN(内容分发网络)学习笔记day01

    阿里云CDN(内容分发网络)学习笔记day01 标签(空格分隔): linux Content Delivery Network 基于阿里云 文章目录 阿里云CDN(内容分发网络)学习笔记day01 ...

  5. Content Delivery Networks CDN 内容分发网络

    Bidirectional Content Delivery Networks BCDN 双向内容分发网络 1. 中国网络现状:南北电信问题  a) 南北电信分拆导致不同网络间访问瓶颈 b) 地域之间 ...

  6. 什么是CDN,内容分发网络学习

    618电商节.双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就不得不提一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN,CDN,CDN!其全称是 Content Delivery ...

  7. 项目笔记:4.引入CDN内容分发网络,实现网站静态元素加速

    项目笔记:4.引入CDN内容分发网络,实现网站静态元素加速 squid 1.在192.168.0.6和192.168.0.7上安装squid 开两台虚拟机ip为0.6,0.7 只需搭建本地系统的yum ...

  8. 基础知识之CDN内容分发网络原理解析

    文章目录 0x00 前言简述 基础概念 工作原理 组成部分 应用场景 0x01 基础配置 CDN 入门配置 CDN 跨域设置 CDN 响应头参数 (扩充) 0x02 边缘脚本与程序 EdgeScrip ...

  9. 视界云:CDN{内容分发网络} 知识详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. CDN 全称:Content Delivery Network或Content Ddistribut ...

最新文章

  1. CMAKE设置INSTALL工程,分别设置头文件、Lib和DLL的输出路径
  2. golang json 获取所有key_Golang —— JSON 大法
  3. 指尖上的电商---(4).net开发solr
  4. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  5. 《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程
  6. 由手机上网带来病毒引发的三大疑问?
  7. maven2-snapshot快照库和release发布库的应用
  8. python写入二进制文件的库_python之写入二进制文件
  9. 安装tensorflow出现超时,找不到指定模+python 各个指定版本安装
  10. java编写sql语句,java实现简单的给sql语句赋值的示例
  11. redis.conf 配置详解
  12. 实践提炼:面对大型B端项目,产品设计该如何展开?
  13. c++成员声明中的非法限定名_new 一个对象有哪两个过程?很多人在面试中都问住了...
  14. mysql 支持全文搜索_MySQL全文本搜索:启用全文本搜索支持
  15. 语音识别哪个软件好,教你三种不同的识别方法
  16. 清华大学计算机红皮书,哈佛的红皮书_82702698.pdf
  17. 运维 ansible工具
  18. 数据库基础之14(MongoDB基本数据类型,数据导入导出,数据备份与恢复)
  19. 取汉子拼音首字母的C#方法
  20. 精通Java事务编程(3)-弱隔离级别之快照隔离和可重复读

热门文章

  1. java8 内置函数(api)总结
  2. 在VUE中利用MQTT协议实现即时通讯
  3. 中国航天将与人工智能技术携手 未来可期
  4. OCP笔记部分整理-学习参考
  5. ORACLE SQL调优之执行计划与隐藏参数_complex_view_merging
  6. Python控制台英汉-汉英电子词典
  7. Linux通过使用Sambaserver示例
  8. WIN8 打开图片内置管理员无法激活此应用
  9. Tornado 使用手册(一)---------- 简单的tornado配置
  10. 27、很酷的C语言技巧