有DNS的地方,就有缓存。html
浏览器、操做系统、Local DNS、根域名服务器,它们都会对DNS结果作必定程度的缓存。本文总结一些常见的浏览器和操做系统的DNS缓存时间。web
Table of Contents
1 操做系统的DNS缓存
1.1 windows
windows DNS缓存的默认值是 MaxCacheTTL,见这里,它的默认值是86400s,也就是一天。它是TTLu 这篇文章列出了一些浏览器的DNS缓存时间。chrome
浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值。windows
1.2 macOS
macOS 严格遵循DNS协议中的TTL浏览器
2 浏览器的DNS缓存
2.1 chrome
为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地创建DNS缓存的方法,加快网站的链接速度。网站
chrome://net-internals/#dns 这里能够看各域名的DNS 缓存时间。chrome对每一个域名会默认缓存60s。spa
2.2 IE
IE将DNS缓存30min。见这里
2.3 firefox
Firefox有dns缓存功能,可是默认缓存时间只有1分钟,能够经过修改该默认值加快DNS解析速度,方法以下:
打开一个新的窗口,地址栏输 入 about:config,回车,进入设置界面。而后搜索 network.dnsCacheExpiration ,把原来的60改为 6000(表示缓存6000秒),再搜索network.dnsCacheEntries 把默认的20改为1000(表示缓存1000条)。若是没 有上面两个项目,新建它们便可,
新建条目类型为整数型。 固然也能够按照须要设置成其它的值。
2.4 safari
约为10s
3 浏览器对DNS解析结果的处理
若是一个域名的DNS解析结果会有多个的话,浏览器是如何处理的呢?
Chrome浏览器会优先向第一个IP发起HTTP请求,若是不通,再向后面的IP发起HTTP请求。