根据雅虎的网络标准建议,我们正在努力将我们的网络基础设施转换为将单个子域用于静态资源。从理论上讲,这应该可以提高性能,因为它将允许浏览器异步发出请求以获取所需的静态资源。我们使用 Cloudflare 作为 CDN,我有点担心 DNS 指向 Cloudflare 的任何投射 IP 范围(虽然只有 15 毫秒)会增加额外的延迟,这可能会破坏通过切换到静态子域。
问问题
637 次
1 回答
1
额外的延迟是疏忽的。浏览器/客户端只会解析一次新的静态子域。总体而言,由于以下几个原因,它确实得到了回报:
- 浏览器可能会更有效地将请求并行到不同的域(尽管最近的发展使这成为过去的事情,事实上一些研究表明,今天的域分片甚至更糟)
- 您的 CDN 源将提供具有更好优化标头的文件。cookie 没有标头(不需要),客户端和代理缓存的标头更好。
- 最重要的是 - CDN 将静态内容传播到全球(所谓的“边缘”),因此您的客户将从靠近他们的服务器获取静态内容,从而将延迟降至最低。
关于你的最后一段,我认为有些混乱......静态文件并不意味着从你的网络服务器内部获取。您的代码应该访问本地文件(并非总是如此,因为某些文件可以存储在 NAS 左右)。静态子域/CDN 中的静态文件是从您用户的浏览器中获取的,而不是从您的网络服务器中获取的。您的 Web 服务器自己创建页面(可能是动态页面,例如 PHP、ASP.NET 文件等),将 HTML 呈现给客户端。该 HTML 引用了其他静态资源:JS、CSS、图像等 - 这些资源理想情况下应该驻留在某种 CDN 中。
于 2013-09-15T23:37:12.597 回答