我注意到DJI Store网站使用多个CDN域来服务器静态元素。
网页:https://store.dji.com/?site=brandsite&from=nav
CDN:
https://asset2.djicdn.com/assets/v2/common/14292283_1302296159810439_4324228009709332653_n.jpghttps://asset4.djicdn.com/assets/v2/build/app-0f0a05d6b0cd030cf68ca92e67816241.csshttps://product2.djicdn.com/uploads/sku/covers/31314/small_55e19eff-2d6a-4d75-8e63-b9b5822fd298.png
只是想知道使用多个CDN域,更多并行下载的目的是什么?
如果是这样,我应该使用几个域?
这不再是从CDN加载资产的推荐方法。最好使用单个CDN并使用它来加载尽可能多的资源,以便可以重用HTTP / 2连接,并且页面必须创建较少的连接。
回到HTTP / 1.1时代,通常的做法是在多个主机上加载资源以并行下载它们。当时这是一种有用的做法,可以为带宽更大的用户显着加快丰富网页的速度。该技术称为域分片。
但是在HTTP / 2之后,就不再需要它了,这被视为一种不好的做法。上面的商店似乎建于HTTP / 1.1时代,并针对当时的浏览器进行了优化。
还有另一个术语“偶然域分片”,这意味着Web开发实践已导致开发人员不必要地依赖越来越多的主机来交付其内容。例如,如今的网站从Google字体加载字体,从一些javascript CDN加载公共库,并将其私有内容托管在私有CDN上。这要求浏览器打开一些本可以避免的不必要的连接,并阻止浏览器利用HTTP / 2多路复用。但是,可能存在诸如PageCDN和EasyFonts之类的解决方案,它们可以共同帮助从可用技术中获得最大性能,因为它们可以通过单个CDN加载所有页面资源。
[如果要查看实际的域分片,请查看http://www.piston.rs/dyon-tutorial/的源代码,它们正在5个CDN上加载资源,并且它们的私有内容(网站CSS和JS文件)仍然需要私有CDN。