减少DNS查询
域名系统(DNS)就是将主机名称映射为IP地址,就像地址簿将人的名字对应到他们的电话号码一样。当你输入到你的浏览器时,一个连接到你的浏览器的DNS解析器返回该服务器的IP地址。DNS查询是有代价的。通常,需要20-120毫秒查找特定主机名的IP地址。在DNS查询完成前,浏览器无法从该主机下载任何东西。
为了更好的性能表现,DNS查询是被缓存的。在一个特殊的缓存服务器上可以缓存这些信息,它由用户的ISP或局域网设备维护,同时用户的计算机也由缓存。DNS信息仍保留在操作系统的DNS缓存中(在Microsoft Windows里是“DNS Client Service”) 。大多数浏览器都有自己的缓存,它们独立于操作系统的缓存。只要浏览器在自己的缓存中有了DNS记录,它不会为每个请求都访问操作系统中的记录。
默认情况下,Internet Explorer的DNS查询缓存是30分钟,可以在注册表里设置DnsCacheTimeout的值来改变。 Firefox的DNS查询缓存是1分钟,可以在配置里设置network.dnsCacheExpiration的值来改变。(Fasterfox将这个值改成了1小时。)
当客户端的DNS缓存是空的(包括浏览器和操作系统),DNS查询数目等于网页中独立的主机名数量。这包括在网页的网址,图片,脚本,样式,Flash等等的URL中。减少独立的主机名数量就减少了DNS查询次数。
减少了独特的主机名有可能减少该网页中并行下载的能力。避免DNS查询减少了响应时间,但是减少并行下载能力可能会增加响应时间。我的准则就是这些组件至少两个主机名,但不超过4个。这样做就可以很好的折衷减少DNS查询,并有高度的并行下载能力。
阅读(1204) | 评论(0) | 转发(0) |