首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么CDN使用不同的域名而不是子域?

为什么CDN使用不同的域名而不是子域?
EN

Server Fault用户
提问于 2019-12-21 17:36:58
回答 2查看 2.1K关注 0票数 6

许多在线服务将其网络配置为使用CDN(内容交付网络),通过允许从地理位置相近的位置提供内容来提高性能。我已经注意到,CDN通常是从与实际服务不同的域名中提供的。

例如,访问www.amazon.com将涉及从媒体-Amazon.com中提取内容。

www.facebook.com从fbcdn.com获取内容,等等。

我的问题是,为什么这些服务不使用子域,而不是为其CDN使用完全不同的域名?

为什么不使用cdn.facebook.com而不是fbcdn.com呢?我很少看到这件事的发生。它几乎总是一个不同的域名,通常是一个基本的域名,加上了一些东西,或者是一个缩写。

我唯一能想到的是,拥有不同的域名允许使用不同的DNS提供程序来传播DNS负载,但情况并不总是如此。

这种做法是否有具体的技术原因?如果是这样,那又是什么呢?

澄清:我不关心域名注册的费用。我想任何一家广泛使用CDN的公司都能负担得起一些额外的域名。我的问题是,为什么从技术角度来看,使用子域不如使用单独的域。这种做法如此普遍的事实表明,这是有充分理由的。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-12-22 02:54:38

虽然每个提供者都是不同的,并且可能有不同的理由做出相同的选择,但这样做的一个共同原因是因为Cookies。

如果您的网站使用cookies,并且您的cookie可能需要用于多个子域,那么您最终将发送cookie以及每个CDN请求。这导致了两个问题:

  1. 如果您有很多cookie和/或非常大的cookies,那么您将大大地扩大对CDN的每个请求,毫无道理地使用宝贵的带宽(因为CDN为每个人提供相同的内容)。在Google、Facebook、Amazon等的规模上,请求中的每一个字节都是计数的,因为数百万(甚至数十亿)的请求加起来很快。
  2. 如果cookie包含用户数据,则可能不希望CDN能够看到该数据。如果您的CDN实际上完全或部分由第三方服务提供商承载,则尤其如此。不向CDN发送cookie消除了攻击用户数据的一种可能途径。

另一个常见的原因是用户生成的内容。这方面的好例子是托管在GitHub存储库中的Gmail附件和代码。如果用户生成的内容托管在子域中,它可能会保留来自Cookies、LocalStorage等的用户信息,并将其发送给第三方。在不同的域上托管可以减轻这种形式的攻击。

票数 11
EN

Server Fault用户

发布于 2019-12-21 20:12:25

答案只能是猜测。很有可能-

处理CDN和应用程序的不同团队/构建系统(S)。通过将域分离而不是使用子域,它简化了管理和自动化,并降低了崩溃的可能性。如果一个域名在总体上是微不足道的话,那么它的成本就会很低。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/996404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档