我注意到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.css https://product2.djicdn.com/uploads/sku/covers/31314/small_55e19eff-2d6a-4d75-8e63-b9b5822fd298.png
只是想知道使用多个CDN域名,更多并行下载的目的是什么?
如果是这样,我应该使用多少个域?
发布于 2019-10-30 16:17:09
这不再是从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。
https://stackoverflow.com/questions/58297105
复制相似问题