为什么这么多大小的网站都在media.example.coms2.static.example.com这样的子域中插入静态文件(CSS,图像,JavaScript,ECC)?

有什么好处?为什么不只是像example.com/media/这样的目录?

#1 楼

我看到至少三个可能的(良好)原因:


使用另一台机器提供静态内容

包括一些CDN


使用其他Web服务器提供静态内容

更轻便,更快的功能
不需要完整的PHP / .NET / JAVA服务器即可提供静态内容!
/>

使用其他域名意味着您将没有在主域上使用的cookie。

这意味着HTTP请求将更小
如果您的点击量很大,那可以数一数(例如,查看这篇文章:Performance Research,第3部分:Cookie崩溃时)。如果我没记错的话,在StackOverflow上做了什么

#2 楼

我认为主要的原因是使用cookie。

Cookie将与每个请求一起发送,假设您有2kb cookie数据并在页面上加载20张图像。 />那是额外的40kb数据,再乘以一个月的浏览量,您可能会惊讶于无用的东西上损失了多少带宽,带宽不是免费的...

此外,在顶级域中设置的Cookie会通过对任何子域的所有请求发送,在这种情况下,甚至建议您购买一个新域,以在Cookie中托管其中的静态组件。免费域。例如,StackOverflow使用sstatic.net,Yahoo使用yimg.com,YouTube使用ytimg.com,Amazon使用images-amazon.com,等等。

看一下这个:

对组件使用无Cookie域


#3 楼

要添加到上面的一些答案中:一些Web浏览器只能从任何域同时下载两个文件。这些较旧的浏览器可以并行下载更多文件。

#4 楼


...对
组件使用无cookie域。服务器
对那些
cookie没有任何作用。因此,它们没有充分的理由只会创建网络流量。您应该
确保使用无cookie请求来请求静态组件。
创建一个子域并在其中托管所有
静态组件。


此建议摘自Yahoo的“加速网站最佳实践”。

#5 楼

仅仅因为您的http请求将变小并且服务器将快速运行,并且所请求的文件将在非常短的时间内给出,这最终将导致最快的页面加载速度

评论


这不会添加其他答案未说的任何内容。您甚至都没有说为什么请求量较小(因为没有cookie),所以这个答案比许多其他答案都要糟糕。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
17年9月10日在12:19