参考: http://developer.yahoo.com/performance/rules.html#dns_lookups
DNS 就像电话本,根据电话本查找指定网站的 IP 地址。查找一次 DNS 一般需要 20-120 毫秒。
The Domain Name System (DNS) maps hostnames to IP addresses, just as phonebooks map people's names to their phone numbers. When you type www.yahoo.com into your browser, a DNS resolver contacted by the browser returns that server's IP address. DNS has a cost. It typically takes 20-120 milliseconds for DNS to lookup the IP address for a given hostname. The browser can't download anything from this hostname until the DNS lookup is completed.
DNS缓存可以提高性能。DNS缓存可以发生在缓存服务器上,由ISP或本地局域网维持。在个人计算机的操作系统中也有DNS信息缓存。还有,大部分的浏览器都有自己的DNS缓存。
DNS lookups are cached for better performance. This caching can occur on a special caching server, maintained by the user's ISP or local area network, but there is also caching that occurs on the individual user's computer. The DNS information remains in the operating system's DNS cache (the "DNS Client service" on Microsoft Windows). Most browsers have their own caches, separate from the operating system's cache. As long as the browser keeps a DNS record in its own cache, it doesn't bother the operating system with a request for the record.
IE浏览器默认保持DNS缓存30分钟,Firefox默认保持1分钟,Fasterfox保持1小时。
Internet Explorer caches DNS lookups for 30 minutes by default, as specified by the DnsCacheTimeout
registry setting. Firefox caches DNS lookups for 1 minute, controlled by the network.dnsCacheExpiration
configuration setting. (Fasterfox changes this to 1 hour.)
When the client's DNS cache is empty (for both the browser and the operating system), the number of DNS lookups is equal to the number of unique hostnames in the web page. This includes the hostnames used in the page's URL, images, script files, stylesheets, Flash objects, etc. Reducing the number of unique hostnames reduces the number of DNS lookups .
减少DNS查找可以缩短响应时间,但是减少了并发下载可能导致响应时间增加。
Reducing the number of unique hostnames has the potential to reduce the amount of parallel downloading that takes place in the page. Avoiding DNS lookups cuts response times, but reducing parallel downloads may increase response times. My guideline is to split these components across at least two but no more than four hostnames. This results in a good compromise between reducing DNS lookups and allowing a high degree of parallel downloads.