1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 清除chrome DNS缓存以及验证方式

清除chrome DNS缓存以及验证方式

时间:2020-08-27 02:29:08

相关推荐

清除chrome DNS缓存以及验证方式

你是否在面试时被问到一个问题:“在浏览器地址栏,输入一个网址,发生了什么?”

这个问题有一点tricky,你应该追问一句,这个网址是什么形式的,是FQDN 还是IP?如果是FQDN格式的网址,第一步当然是解析域名。DNS查询,浏览器缓存是最先检查的地方,chrome可以在地址栏输入chrome://net-internals/#dns 来访问。不过这个页面很简陋,并没有提供DNS缓存的细节,如具体的被缓存的DNS条目,以及相关的TTL,而仅仅提供了清除DNS缓存的功能,Clear host cache。这个表述有一定的迷惑性,这里host到底是指浏览器还是操作系统?是否真的存在浏览器DNS缓存,又如何验证呢?

下面以chrome访问为例,验证一下上述2个问题。

工具:

wireshark用来抓取dns报文,过滤器里填dns.qry.name==

ipconfig可以用来查看操作系统的DNS缓存

主要用到下面2个参数

ipconfig/displaydns | findstr “” #查找百度的dns缓存

ipconfig/flushdns #清空缓存

测试流程:

0. 确认开始系统DNS缓存中无,有则清掉

ipconfig/displaydns | findstr “”

ipconfig/flushdns

1.访问,并抓dns包,检查系统dns缓存

ipconfig /displaydns | findstr “”

记录名称. . . . . . . :

2.清除系统DNS缓存,刷新,验证是否发起新的dns请求

ipconfig/flushdns

未发起新的dns请求,百度可以访问

3.清除chrome dns缓存,刷新,验证重新发起dns缓存。

发起新的dns查询,重新生成系统dns

至此,就验证了chrome浏览器的DNS缓存及实际效果。

可以得出如下结论:确实存在浏览器DNS缓存,它是生效的,并且优先级高于系统缓存。

附面试题答案

1.如果链接地址是域名开头的,浏览器会开始DNS解析动作。解析优先级依次为:浏览器缓存 > 操作系统缓存 > 本机hosts文件 > “本地DNS服务器” >核心DNS服务器( 根级DNS > 顶级DNS > 权威DNS) ;将域名解析为正确的ip地址之后,通过三次握手与服务器建立tcp/ip连接;浏览器发送请求报文,服务器接收并处理请求,返回响应报文,浏览器开始解析html文档,在这过程中又会发起一些http请求,进行图片、css、js等静态资源的获取,以及ajax请求获取json数据。同时,浏览器相关引擎开始绘制dom视图,执行js脚本,完成页面的初始化直到所有代码执行完毕。

2.如1中所说DNS解析顺序,当请求DNS服务器进行域名解析时,发现没有找到对应的ip,会导致解析失败,无法建立tcp/ip链接,导致浏览器建立连接时间过长,最终建立连接失败,浏览器停止建立连接动作。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。