浏览器在获取网站域名的实际IP地址后会对其IP进行缓存,减少网络请求的损耗。每种浏览器都有一个固定的DNS缓存时间,其中Chrome的过期时间是1分钟,在这个期限内不会重新请求DNS。Chrome浏览器看本身的DNS缓存时间比较方便,在地址栏输入:chrome://net-internals/#dns 即可看到当前浏览器的缓存;
OS缓存会参考DNS服务器响应的TTL值,但是不完全等于TTL值。测试DNS解析为例:C:\windows\system32>ipconfig /displaydns
接着通过域名解析命令获取ISP端的域名服务中的TTL时间:
接着通过域名解析命令获取ISP端的域名服务中的TTL时间:
C:\Users\cmcc>nslookup -d 网址
可以看到本地ISP服务器上缓存的时间,就算刷新了本机操作系统缓存,ISP上仍然存在。
可以看到本地ISP服务器上缓存的时间,就算刷新了本机操作系统缓存,ISP上仍然存在。
Windows
Windows2003之前的DNS缓存设置时间在注册表的位置是HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Dnscache/Parameters
键名MaxCacheEntryTtlLimit,为DNS缓存条目TTL最大值,在XP和2003系统中此项名称为MaxCacheTtl
IOS
按照官方文档说法,iOS设备上每24小时刷新一次DNS缓存
以下列出了一些浏览器的DNS缓存时间:
1、Chrome
为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地建立DNS缓存的方法,加快网站的连接速度。
chrome://net-internals/#dns 这里可以看各域名的DNS 缓存时间。Chrome对每个域名会默认缓存60s。
2、IE
IE将DNS缓存30min。
3、Firefox
Firefox有DNS缓存功能,但是默认缓存时间只有1分钟,可以通过修改该默认值加快DNS解析速度
ISP(电信运营商)缓存有些不靠谱,有些缓存服务器(不多)会忽略网站DNS提供的TTL,自己设置一个较长的TTL,导致顶级DNS更新时不能及时拿到新的IP地址。www.winwin7.com
可以看出,在从Root DNS请求域名解析的过程中,有太多的层次影响DNS的获取,缓存是双刃剑,提高了获取DNS的速度,也会影响DNS在IP变更时不能及时更新到最新。
分享到: