为什么使用 CDN(内容分发网络 )?

Why use a CDN (Content Delivery Network‎)?

我注意到大多数在线教程都使用 CDN 而不是仅在本地添加新文件(CSS 或 jQuery)并以 <link href="~/Content/css/footer.css" rel="stylesheet" />。我读到了它,但对于为什么要使用 CDN 仍然没有多大意义。除了更好的缓存,为什么你会使用 CDN 而不是在本地编码你的文件并只引用它?

缓存是原因之一:如果我使用相同的 jquery 文件,例如google.com 是的,大部分来我这边的用户都不会加载它。这减少了我网页的加载时间。

另一个原因是 CDN 服务器的全球分布。如果我想要在德国这里的图像,从美国服务器加载它比从德国这里的服务器加载它需要更长的时间(因为延迟)。

许多网站使用 HTTP/1.1,但这是一个很大的 slow-down。 HTTP/1.1 无法并行发送文件,必须再次为每个请求发送 header / 握手。您会遇到巨大的延迟问题 — 这就是浏览器为一台主机使用多达六个连接才能一次加载六个文件的原因。使用 CDN,您可以增加主机,因此每个 CDN 为您提供额外的六个连接。

但这实际上已经成为历史。

HTTP/2 只使用一个连接并且能够保持流和多路复用包。在协议层进行spriting/concatenating

这意味着您可以并行发送多个文件(现在取决于您的带宽,在延迟阻止这种可能性之前)。您甚至可以确定文件的优先级并创建 queue,以便最后发送不太重要的文件。

使用 HTTP/2,CDN 实际上会再次降低您的站点速度,因为您必须再次发送多次 headers / 握手,从而导致延迟。

对于 HTTP/2,您需要 HTTPS 连接,但无论如何我们都推荐这样做。

它只是降低服务器负载

因此,战略布局可以减少互连、backbones 和 public 以及私有对等点的服务器负载,从而释放整体容量并降低交付成本。本质上,内容分布在多台服务器上,而不是将它们卸载到一台大型服务器上。

加快内容交付速度

由于 CDN 将服务器放置在尽可能靠近一组用户的位置,因此由于传输距离较短,延迟和数据包丢失都被最小化了。理论上,内容离用户越近,传递越快。因此,用户在流式传输时会体验到更少的抖动、更少的网络峰值以及整体改进的流式传输质量。由于可靠性,运营商可以提供具有高水平服务、低网络服务器负载的高质量内容,从而降低成本。

此外,许多 CDN 提供商提供 TCP 加速技术,可提高性能,从而改善用户体验。由于 CDN 减少了延迟,加速与已经高性能的网络一起工作会产生爆炸性内容。

100% 可用性

由于资产分布在许多地区,CDN 具有自动服务器可用性检测机制,可以即时用户重定向。因此,即使在大规模停电、硬件问题或网络问题期间,CDN 网站也能实现 100% 的可用性。

并发用户数增加

从战略上将服务器放置在 CDN 中可以提高网络 backbone 容量,这相当于在给定时间访问网络的用户数量显着增加。例如,如果有一个 100 GB/s 网络 backbone 和 2 tb/s 容量,则只能交付 100 GB/s。但是,使用 CDN,10 个服务器将在 10 个战略位置可用,然后可以提供 10 x 100 GB/s.

的总容量

控制资产交付

CDN 技术的另一个有益特性是授予对资产交付和网络负载的更多控制权。运营商有能力提供实时负载统计数据、优化每个客户的容量、显示活动区域、指示哪些资产受欢迎,并向客户报告查看详细信息。这些细节非常重要,因为一旦将服务器源添加到 CDN,使用日志就会被停用。

更多参考:link