A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

DNS用于映射主机名和IP地址。当在浏览器中键入www.xxx.com,浏览器发启的DNS解析请求会返回服务器的IP地址。DNS解析有代价,一般一次解析需要20~120毫秒。浏览器在DNS查询完成前不会下载任何东西。这就是DNS次数影响网站性能的原因,查询次数所需的时间越多,打开页面的时间就越长。

而浏览器会想办法对DNS的查找结果进行缓存。而除了浏览器的缓存之外,操作系统(例如Windows)也会对DNS查询的结果做缓存。

  1.  IE 中默认情况下对DNS的缓存时间为 30分钟。
        Windows的DNS缓存,可以通过ipconfig /displaydns 这个命令来查看。
  2.  Firefox默认的DNS缓存时间据说为1分钟,如果不满意这个选项,直接修改 network.dnsCacheExpiration 即可。
  3.  Google Chrome默认的DNS缓存时间,据我观察也是1分钟,可以通过chrome://net-internals/#dns 这个地址查看。

当客户端的DNS缓存为空时(浏览器与操作系统),DNS查询的次数等同于网页中各域名的个数。包括该网页URL、图片、脚本文件、样式表、FLASH对象等使用的域名。减少域名数量可以减少DNS查询次数。

虽然减少域名主机可减少DNS查询的次数,但可能造成并行下载数的减少。避免 DNS查询可减少响应时间,而减少并行下载数可能增加响应时间。

综合下来,得出以下总结:

   1. 由于DNS查找是需要时间的,而且它们通常都是只缓存一定的时间,所以应该尽可能地减少DNS查找的次数。
   2. 减少DNS查找次数,最理想的方法就是将所有的内容资源都放在同一个域(Domain)下面,这样访问整个网站就只需要进行一次DNS查找,这样可以提高性能。
   3. 但理想总归是理想,上面的理想做法会带来另外一个问题,就是由于这些资源都在同一个域,而HTTP /1.1 中推荐客户端针对每个域只有一定数量的并行度(它的建议是2),那么就会出现下载资源时的排队现象,这样就会降低性能。
  
所以,折衷的做法是:建议在一个网站里面使用至少2个域,但不多于4个域来提供资源。

3 个回复

正序浏览
赞赞赞!!!!!!
回复 使用道具 举报
总想了解更多东西
回复 使用道具 举报
表示将进基础班新人暂且还不懂域,就文字字帮助题主鼓励一下吧ヾ(@^▽^@)ノ 
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马