初次了解【域名发散】和【域名收敛】

MX羽林 / 2023-05-16 / 原文

什么是域名发散

域名发散是指将静态资源放在多个子域名下,以突破浏览器对同一域名的并发请求限制,提高页面加载速度。例如,如果主页面是 www.example.com,那么可以将图片、样式表、脚本等静态资源分别放在 img.example.com、css.example.com、js.example.com 等子域名下。

要实现域名发散,需要以下几个步骤:

  • 配置服务器或者 CDN 服务,让不同的子域名指向相同或者不同的服务器地址。
  • 修改页面中引用静态资源的 URL,使用相应的子域名。
  • 如果需要,设置跨域资源共享(CORS)策略,允许不同子域名之间的资源访问。这样,当浏览器加载页面时,就可以同时从多个子域名下载静态资源,提高并行度和效率。

不过,域名发散也有一些缺点和限制,例如:

  • 增加了 DNS 解析的开销和时间。
  • 增加了 SSL 证书的成本和管理难度。
  • 可能造成跨域问题和安全风险。
  • 可能不适合移动端的网络环境和性能优化。因此,在使用域名发散时,需要根据具体的场景和需求进行权衡和测试。

域名发散使用场景

使用域名发散的情况有以下几种:

  • 当页面中有大量的静态资源需要加载,而浏览器对同一域名的并发请求限制较低时,可以使用域名发散来提高页面加载速度。
  • 当页面中的静态资源不需要携带 cookie 时,可以使用域名发散来节省 cookie 带宽。
  • 当页面中的静态资源可以分布在不同的服务器或者 CDN 服务上时,可以使用域名发散来提高资源的可用性和稳定性。

不过,使用域名发散也要注意以下几点:

  • 不要使用过多的子域名,否则会增加 DNS 解析的开销和时间。一般来说,域名发散的数量最好在3以下。
  • 要考虑 SSL 证书的成本和管理难度,以及跨域问题和安全风险。
  • 要根据不同的网络环境和性能优化策略进行权衡和测试,有时候域名收敛可能更适合移动端。