10月 12th, 2021

缓存是内容交付网络(CDN) 服务的核心。类似于浏览器缓存在硬盘驱动器上存储文件的方式,在那里可以更快速地访问它们,CDN 将您的网站内容移动到为加速内容分发而优化的强大代理服务器。

缓存的工作原理是有选择地将网站文件存储在 CDN 的缓存代理服务器上,从附近位置浏览的网站访问者可以快速访问这些文件。推荐阅读:《什么是CDN,CDN它是怎样工作的》

  缓存服务器如何工作

代理缓存服务器是 CDN 网络数据中心的组成部分,这些数据中心战略性地分布在全球各地。这些存在点 (PoP) 是根据各个区域的流量模式选择的。

拥有众多用户的高度活跃的位置可能有多个数据中心。另一方面,用户很少的偏远地区可能只有一个 PoP 来覆盖较大的地理区域。

一旦到位,缓存服务器充当网站内容的存储库,为本地用户提供对缓存文件的加速访问。缓存服务器离终端用户越近,网站数据传输所需的连接时间就越短。

在硬件方面,典型的个人缓存服务器是内容交付的强者,具有增强的 RAM 和 SSD 存储资源。作为更快的选项,RAM 用于高优先级资源,而 SSD 用于请求最少但仍可缓存的 Web 文件。

  缓存头解释

Web 开发人员使用 HTTP 缓存标头来标记可缓存的 Web 内容并设置缓存持续时间。使用缓存标头,您可以通过建立确保内容新鲜度的最佳缓存策略来控制缓存策略。

例如:“Cache-Control: max-age=3600”表示在必须从原始内容中重新获取文件之前,该文件可以被缓存不超过一个小时。

仔细标记每个文件,甚至是文件组,可能会让人不知所措,而且容易导致效率低下。现代 CDN 允许您通过采用能够在发现缓存标头指令不理想时覆盖缓存标头指令的智能机制来放弃这种做法。

最常见的是,这些机制允许缓存默认标记为不可缓存的动态内容,即使新鲜度不是问题。

  满足标题

  缓存控制

HTTP/1.1 中引入的标头处理各种缓存功能。所有现代浏览器都支持缓存控制并取代任何上一代标头(例如Expires)。

Cache-Control: public – 通过公共平台(如 CDN)启用缓存。

缓存控制:私有– 保留用于指定为不可缓存的私有信息。

Cache-Control: no-cache – 缓存前需要验证。

Cache-Control: no-store – 完全禁止缓存。

Cache-Control: public, max-age=[seconds] – 设置清除前内容可以缓存的最大时间限制(以秒为单位)。推荐阅读:《 CDN的加速原理 》

  过期

类似于Cache-Control:max-age,设置内容过期和移除的时间。

  代理

使您可以更好地控制缓存策略,以原始服务器的权限进行操作。

  标签

为您的缓存 Web 内容提供唯一标识符,支持单独标记和更复杂的排序。

  编译指示

Pragma 在很大程度上被缓存控制所取代,以前用于处理浏览器的缓存指令。

  变化(谨慎使用)

一些浏览器仍然难以支持 Vary 标头。如果使用得当,Vary 可以成为管理多个文件版本交付的强大工具,尤其是对于与未压缩副本一起缓存的压缩文件。

  智能缓存控制

迄今为止,大多数 CDN 缓存都是一个动手过程。然而,现代 CDN 正在开发新流程来监控、分类和缓存更广泛的内容,从而节省您的时间并提高整体效率。

这种基于学习的方法依赖于 CDN 跟踪内容使用模式以自动优化存储和交付的能力。使用此类智能缓存控件的好处包括:

  •   区域热门内容的缓存调整
  •   经常访问的材料的自动缓存规则
  •   高需求内容的生产性复制
  •   时间敏感的存档和到期政策

智能缓存控制的主要好处之一是能够为动态生成的对象识别新的缓存机会。这些内容随着每次访问而重新生成,可能不会发生变化,但由于技术原因仍被视为“动态”。

  通过学习进行预测

智能缓存算法可以通过观察使用模式自动识别动态内容。例如,当系统注意到产品页面的相同 HTML 版本一次又一次地被提供时,它会将其标记为静态,即使它是动态生成的。

从那时起,HTML 对象被视为“可缓存”,并直接从 CDN 的代理服务器提供服务,以提高页面加载速度和响应能力。另一方面,算法会跟踪对象并不断重新评估其状态,一旦发现它被修改就将其标记为动态。

大规模执行此操作可以极大地提高网站性能,而不会影响内容新鲜度。

  必备缓存选项

  清除缓存

使您能够随时刷新缓存文件。请注意,某些提供程序将只允许您刷新整个缓存存储。此外,在某些情况下,您的 CDN 提供商会限制给定时间段内的清除次数。清除请求的有效性以它在整个网络中传播所需的时间来衡量。

  始终/从不缓存

帮助您手动覆盖缓存标头,标记应始终从缓存提供或从不提供的文件。这是缓存管理的有效工具,尤其是与批量管理选项结合使用时,允许您将这些指令应用于整个文件组(例如,/template/images/ 文件夹中的所有 JPG 文件)。

  缓存期间

始终缓存选项的改进,这允许您设置在刷新之前应从缓存中提供对象的特定时间段。从 CDN GUI 访问,这样可以更轻松地管理特定文件。但是,此选项在用于批量文件管理时最有用(例如,所有缓存五天的 JS 文件)。

以上就是CDN缓存工作原理以及条件的全部内容。推荐相关阅读:《 CDN的有哪些优点和缺点 》

TAGS:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注