有dns的地方,就有缓存。浏览器、操做系统、Local DNS、根域名服务器,它们都会对DNS结果作必定程度的缓存。本文总结一些常见的浏览器和操做系统的DNS缓存时间chrome
浏览器先查询本身的缓存,查不到,则调用域名解析函数库对域名进行解析,以获得此域名对应的IP地址浏览器
DNS查询顺序:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索缓存
一、chrome:服务器
为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地创建DNS缓存的方法,加快网站的链接速度。chrome://net-internals/#dns 这里能够看各域名的DNS 缓存时间。chrome对每一个域名会默认缓存60s。socket
在url地址栏输入chrome://chrome-urls/能够看到chrome全部的配置界面;函数
选择chrome://dns或者chrome://net-internals/#dns能够查看chrome浏览器的dns缓存信息网站
点击“Clear host cache”+而后选择"clear cache"和 " flush socket",能够清空chrome的dns缓存url
二、firefox:spa
配置含义:操作系统
network.dnsCacheEntries:缓存的数量
network.dnsCacheExpiration:dns缓存的时间
network.dnsCacheExpirationGracePeriod:dns缓存的时间,设置为0表示不缓存
三、浏览器对DNS解析结果的处理
若是一个域名的DNS解析结果会有多个的话,浏览器是如何处理的呢?Chrome浏览器会优先向第一个IP发起HTTP请求,若是不通,再向后面的IP发起HTTP请求
四、验证一把:如图,有DNS Lookup、Initial connection(TCP链接)、SSL链接
再次请求,上面的三个过程没有了,由于浏览器有DNS 缓存;TCP长链接尚未断开;SSL链接也还在
如图所示点击“Flush sockets”
三个请求从新发起:DNS查询、TCP三次握手、SSL链接