背景:一同事问我半个月前通过修改host文件去访问指定ip下的测试网站,之后进行注释想访问线上的网站,结果访问请求出来的都是原先的那个测试网站,删除该指定ip下的网站,以及清除浏览器缓存,期间换了几个浏览器浏览还是不管用。后面通过查阅资料,进行清除Dns缓存.
即打开命令提示行,快捷键 win+R 运行框中输入 cmd ,打开之后直接输入 ipconfig /flushdns 即可清空Dns缓存。尝试这种方式也不行,最后总监给我提了一个思路,就是在host中输入线上的ip指向该网站,然后进行保存,清空DNS缓存。然后再进行注释该 ip地址指向。清空dns缓存,结果就能访问了。基本操作就是因为有dns缓存需要进行清空,最主要的是方式可能有多种,但是思路很重要,而不是仅限于眼前局部看到的。
host文件位于 C:WindowsSystem32driversetc 下,以记事本的方式打开
添加 指定ip 域名
最后保存就可以在浏览器上看到你相对应指定的ip下网址。
后期发现此方法有时也不管用,然后通过查阅明白了其原理,主要原因是服务器设置了 keep-alive
!次要原因是存在浏览器 DNS 缓存和系统 DNS 缓存。
服务器在响应头设置了 Connection: keep-alive
(一般的网页都会设置 keep-alive,保持长连接,避免多次连接产生网络消耗)之后,客户端会跟服务器保持长连接,只要长连接不断开,页面在请求的时候就不会重新解析域名!
方法有:Chrome 中进入 chrome://net-internals/#sockets
点击上方的 close idle sockets
按钮,可以关闭所有的长连接
另一种就是打开浏览器的隐私模式,
360:Ctrl+Shift+N
火狐:ctrl+shift+P
谷歌:Ctrl+Shift+N
ie:ctrl+shift+P