CDN

CDN(内容分发网络)是一组分布在多个位置的服务器。这些服务器存储数据的副本,以便服务器可以根据与相应最终用户最近的服务器来满足数据请求。CDN 可以提供快速服务,并且受高流量影响较小。

CDN 被广泛用于分发 Bootstrap、jQuery 等库的样式表和 JavaScript 文件(静态资源)。出于多种原因,为这些库文件使用 CDN 是更优的选择:

  • 通过 CDN 提供库的静态资源可以减轻组织自身服务器的请求负担。
  • 大多数 CDN 在全球都有服务器,因此 CDN 服务器在地理位置上可能比您自己的服务器更接近您的用户。地理距离与延迟成正比。
  • CDN 已配置了适当的缓存设置。使用 CDN 可以节省您在自己服务器上对静态资源的进一步配置。

事实上,整个网站都可以通过 CDN 提供服务,尤其是完全由静态 HTML、CSS 和 JavaScript 文件组成的静态网站。

与自行托管静态资源相比,使用 CDN 也有缺点:

  • 它引入了对第三方服务的额外依赖。如果 CDN 宕机、在某个区域被屏蔽或永久关闭,您的网站将无法正常运行。
  • 它引入了额外的攻击向量。攻击者可能会入侵 CDN 并向您的用户提供恶意内容。这就需要采取子资源完整性 (SRI) 等对策。
  • 与普遍的看法相反,CDN 实际上可能会降低性能。通过与第三方网站建立连接,用户的浏览器必须经历更多的 DNS 查找、内容协商等过程。此外,出于隐私原因,现代浏览器不会在不同来源之间共享同一资源的缓存,因此用户无论如何都必须在不同的网站上多次下载相同的资源(例如 jQuery)。

另见