查看浏览器DNS缓存
前言
①一般来说,有需要提供DNS域名解析的地方就会有DNS缓存存在。
②浏览器、操作系统、Local DNS、根域名服务器等,它们都会对DNS域名系统解析的结果做一定程度的缓存。
③DNS查询顺序:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。
④DNS在浏览器缓存的作用是:加快网页的加载速度。
⑤浏览器对DNS解析结果的处理:如果一个域名的DNS解析结果有多个的话,Chrome浏览器会优先向域名对应的第一个IP地址发起HTTP请求,如果不通,再向后面的IP地址发起HTTP请求。
Chrome浏览器自身的DNS缓存
为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地建立DNS缓存的方法,加快网站的连接速度。 chrome://net-internals/#dns 这里可以看各域名的DNS 缓存时间。Chrome浏览器对每个域名会默认缓存60s。
但是输入后却看不到想要看到的DNS缓存信息,这是为啥呢?
这是因为原来的那个方式移除了,现在需要手动去开启记录到本地磁盘。具体操作方式如下:
大致意思:网络内部事件查看器和相关功能已被删除。请使用chrome://net-export保存netlog,并使用外部netlogviewer查看它们。
开启浏览器DNS缓存后,访问网站,拿到本地日志文件,然后解析。
点击《Clear host cache》可以清楚浏览器的DNS缓存。
FireFox浏览器
在url栏上输入 about:config 就可以进行FireFox浏览器中的DNS缓存设置。
配置含义:
network.dnsCacheEntries:缓存的数量
network.dnsCacheExpiration:dns缓存的时间
network.dnsCacheExpirationGracePeriod:dns缓存的时间,设置为0表示不缓存
实战
①如下图,第一次请求某网页的时,存在DNS Lookup、Initial connection(TCP连接)、SSL连接等时长消耗。
②再次请求,上面的三个过程没有了,因为浏览器有DNS 缓存(不需要重新域名解析服务);TCP长连接还没有断开(不需要重新建立TCP连接);SSL连接也还在(不需要重新建立SSL连接) 。
③清理当前浏览器自身的DNS缓存(点击《Flush sockets》)。
④重新向该域名发起请求,会重新进行DNS查询、TCP三次握手、SSL连接