多方面分析国内外公开的 CDN
==原创:Cydia·Rice (可能存在表达错误或者测试失误,请耐心提问或者指出错误),转载需注明==
==部分功能未参与此次分析,你可以在下面的评论提出来。部分分析不到位,请耐心指出,切勿大肆吐槽。==
多方便分析了这些 CDN,各有利弊。公开的静态资源库是本次分析的重点,两大厂的自建 CDN 也加入本次分析。从中,我们或许可以了解哪些 CDN 比较可靠,哪些 CDN 服务的内容或区域更加适合我们。
参与分析的 CDN
由于第二个 CDN 官网未有名称,根据域名,暂且和同域名的图床同名。BootCDN 官网不稳定(因为引用了自家的 CDN 啊,所以----)。JSDelivr 因部分地区 algolia 搜索框加载慢,官网体验不佳。
CDN 服务
绿色的 CDN 服务较多。其中,公开 CDN-SM.MS 和 75CDN,较其他 CDN,提供更多服务。自建 CDN 的服务内容主要看源站了,这里不做比较。
CDN 资源来源
绿色表明资源多,有些相当少,百度中规中矩。(对于国内的公共 CDN 来源并不唯一,这里注明主要来源。大多数都提供了“申请添加资源”功能,但只有 75CDN 能够及时响应并添加或手动更新,其他的一般申请都不了了之。)
公开 CDN 域名、链接、证书安全性
百度、BootCDN、CDNJS、Microsoft 的 CDN 域名或与主服务的证书一致,或为可自动续期的证书。理论上,上述 CDN 的 HTTPS 证书可得到保障。(我没有歧视证书的不同=.= )。也可以从中看出,多数公开 CDN 均使用了泛域名证书。
SM.MS,CDNJS,JSDelivr 采用了更安全的策略( Use HTTPS-HTTPS only 指 HTTP 不会跳转到 HTTPS,但 HTTPS 访问后不可降级,将会带上 strict-transport-security 头; SM.MS 的安全策略颇为奇怪,部分 CDN 服务域名使用 Use HTTPS-HTTPS only,部分 CDN 服务域名 HTTPS 和 HTTP 可任意跳转; JSDelivr 将在 April 31st 启用 HTST,不再提供 HTTP,HTTP 强制跳转 HTTPS ;腾讯海外 CDN 至今仍未提供强制 HTTPS 服务)。
我们还可以看出,直接提供 SRI 服务的有 75CDN (官网需按照指示开启 SRI,复制 link 或 script 标签时自动添加)。SRI 是浏览器的一种安全策略,防止第三方(中间人?拉光纤的?)篡改 CDN 文件内容。Github 于 September 19, 2015 已完成 Github 网页的 SRI 改造,加强 Github 的安全性。SRI 并非只有官方可以提供,我们可以手动根据 CDN 静态链接来获取 SRI (麻烦一点=.= )。
不要认为 SRI 多此一举,你可是在国内环境。JSDelivr 约半年前,国内 CDN 被其服务商投毒,后紧急撤回。BootCDN 已多次反馈各地 CDN 被劫持,并要求升级为 HTTPS。
国内外 IP 数和 PING 的均值
不要还没看完就认为我歧视那些 IP 少的 CDN,CDN 的质量和 IP 数无直接关联。图中的 IP 数,绿色为解析 IP 和其解析地所匹配,红色则为不匹配(国内解析到国外,反之亦然)。后面为对应的均值 PING。SM.MS\75CDN\JSDelivr\又拍 CDN 表现突出,国内外均能正常解析至就近 IP,所以其 PING 值也较低。
实际文件测试&CDN 路径比较&问题
说明:非单机测试,均为多地服务器测试,均为均值。测试时前 5 次测试值放弃,保证 CDN 已取回文件,减少源站的干扰。“-”值为无该文件。除 CDNJS 取回的文件大小为 450KB 外,其他测试的 CDN 取回的文件为 element4.5 版本的 index.js ( 525.854KB )。新浪 CDN 未能测试到 element 的 index.js 文件,但在查询库时,部分 CDN 文件存在编码错误(已排除本地问题和引用问题)。
同步 CDNJS 库的 CDN 路径相同,开发时便于某些特殊操作。
可以看出,0.5MB 的 JS,CDNJS 最慢,其他表现差异不明显。JSDelivr 因压缩方式不同,实际传回文件更小。
总结
==CDN 无好坏之分,分析只是为了寻找更合适的 CDN 服务。每一个 CDN 的提供商都不容易。我们也可以从中看到某些大厂,对于公共 CDN 的服务态度。==
强调
==原创:Cydia·Rice (可能存在表达错误或者测试失误,请耐心提问或者指出错误),转载需注明==
==部分功能未参与此次分析,你可以在下面的评论提出来。部分分析不到位,请耐心指出,切勿大肆吐槽。==
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.