首页 > 解决方案 > 多个 CDN 会加速页面加载吗

问题描述

我注意到 DJI Store 网站使用多个 CDN 域来服务器静态元素。

网页: https ://store.dji.com/?site=brandsite&from=nav

CDN:

https://asset2.djicdn.com/assets/v2/common/14292283_1302296159810439_4324228009709332653_n.jpg https://asset4.djicdn.com/assets/v2/build/app-0f0a05d6b0cd030cf68ca92e67816241.com/ _上传/sku/covers/31314/small_55e19eff-2d6a-4d75-8e63-b9b5822fd298.png

只是想知道使用超过 1 个 CDN 域、更多并行下载的目的是什么?

如果是这样,我应该使用多少个域?

标签: cdn

解决方案


这不再是从 CDN 加载资产的推荐方式。最好使用单个 CDN 并使用它加载尽可能多的资源,以便可以重用 HTTP/2 连接并且页面必须创建更少的连接。

回到 HTTP/1.1 时代,在多个主机上加载资源以并行下载是一种常见的做法。这在当时是一种有用的做法,可以显着加快具有更多带宽的用户的丰富网页速度。这种技术被称为域分片。

但是在 HTTP/2 之后,它不再被需要并且被视为一种不好的做法。上面的商店似乎是在 HTTP/1.1 时代构建的,并针对那个时代的浏览器进行了优化。

还有另一个术语“附带域分片”,这意味着 Web 开发实践导致开发人员不必要地依赖越来越多的主机来交付他们的内容。例如,如今的网站从 Google Fonts 加载字体,从一些 javascript CDN 加载公共库,并将其私有内容托管在私有 CDN 上。这需要浏览器打开几个可以避免的不必要的连接,并阻止浏览器利用 HTTP/2 多路复用。但是有一些可能的解决方案,例如PageCDNEasyFonts,它们可以共同帮助实现可用技术的最大性能,因为它们通过单个 CDN 加载所有页面资源。

如果您想查看附带域分片的实际效果,请查看http://www.piston.rs/dyon-tutorial/的源代码他们正在加载超过 5 个 CDN 的资源,以及它们的私有内容(网站 CSS 和 JS 文件) 仍然需要私有 CDN。


推荐阅读