我即将完成一个网站的开发,并且正在将图像,脚本和字体卸载到第二个服务器池。目前,静态池已 io.mydomain.com,站点本身已 mydomain.com(www.* 重定向到裸域)。
有据可查*,对静态资产使用单独的 DNS 查找可以提高性能,因为它会使并发资产下载量翻倍,但我正在尝试找到实现此目的的最高性能方法?
我的问题是:从DNS的角度来看,像Apple那样使用子域(TLD查找,域查找,子域查找)更好(images.apple.com),还是像雅虎和Microsoft那样使用单独的域(TLD查找和域查找)(yimg.com 和 c.s-microsoft.com)更好?两者之间有很大的区别还是可以忽略不计?
*https://developer.yahoo.com/performance/rules.html
假设没有缓存任何内容,那么拥有相同的顶级域会带来无限小的改进。
对于相同的顶级域查询,查询将如下所示
- 查询根服务器以获取.com名称服务器 .com. 名称服务器
- 查询 .example.com. 名称服务器。
- 查询 .example.com. 名称服务器以获取 www.example.com
- 查询 .example.com.(缓存地址)io.example.com 的名称服务器。
对于单独的域,它将是
- 查询根服务器以获取.com名称服务器 .com. 名称服务器
- 查询 .example.com. 名称服务器。
- 查询 .example.com. 名称服务器以获取 www.example.com
- .com.(缓存地址)名称服务器查询 .xmpl.com. 名称服务器。
- 在 .xmpl.com. 名称服务器中查询 io.xmpl.com
一旦进行了第一次查询 - 只要您没有设置非常短的到期时间 - 客户端就永远不需要再次查找它们。
在最好的情况下,您可能会从第一个查询中缩短一毫秒。在那之后,它什么也没改变。
这甚至不值得思考! 还有很多其他地方,你会暂时失去这种时间。