即使引入了网络延迟,使用子域进行静态资源也可以提高性能吗?

时间:2013-09-15 23:25:40

标签: performance http static subdomain

根据雅虎的网络标准建议,我们正在努力将我们的网络基础设施转换为使用单个子域来获取静态资源。从理论上讲,这可以提高性能,因为它允许浏览器异步发出请求以获取所需的静态资源。我们正在使用Cloudflare作为CDN,我有点担心随着DNS指向Cloudflare的任何转换IP范围(仅15ms)而增加的额外延迟可能会破坏通过切换到a而获得的任何性能优势。静态子域。

1 个答案:

答案 0 :(得分:1)

额外的延迟是疏忽的。浏览器/客户端只会解析一次新的静态子域。总的来说,由于以下几个原因,它确实得到了回报:

  1. 浏览器可以更有效地将请求并行到不同的域(尽管最近的发展使这成为过去的事情,实际上一些研究表明domain sharding is even worse today
  2. 您的CDN来源将提供具有更好优化标头的文件。没有Cookie的标头(不需要),更好的客户端和代理缓存标头。
  3. 最重要的是 - CDN将静态内容传播到全球(所谓的'边缘'),因此您的客户将从靠近它们的服务器获取静态内容,从而将延迟降至最低。
  4. 关于你的最后一段,我认为存在一些混淆......静态文件并不意味着从你的web服务器中取出。您的代码应该访问本地文件(情况并非总是如此,因为某些文件可以存储在NAS中)。静态子域/ CDN中的静态文件是从用户的浏览器中提取的,而不是从Web服务器提取的。 您的Web服务器自己创建页面(可能是动态的页面,如PHP,ASP.NET文件等),它们将HTML呈现给客户端。该HTML引用其他静态资源:JS,CSS,图像等 - 这些资源理想情况下应该驻留在某种CDN中。