清空/IE/FF浏览器dns缓存分类:性能优化_架构设计| 发布:| 查看: | 发表时间:2013/11/27
为什么要使用浏览器DNS缓存,无非就是提供域名的解析速度(因为直接ip是代表主机的,域名只是ip的马甲,拖了马甲才能睡觉~)
什么是DNS?简而言之是从域名()解析为IP(116.255.161.231)的过程,详情可移步。
题外话:那么怎么查看域名解析的时间呢?
(通过查看访问百度时的DNS 是2ms)
解析时间一般都是毫秒级的,有个浏览器dns缓存机制,会大大提供解析时间。还记得为什么我们要在域名后边加一个斜杠吗? 比如:我告诉你我的网站: 你访问这个,比我告诉你网站: 访问的要慢点。 这是域名解析的过程中的优化。如图:
解析的文字描述:
1.客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
2.当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
3.如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
4.本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
5.重复第四步,直到找到正确的纪录。
6.本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
这篇文章用以记录浏览器级别的DNS缓存策略:
各大浏览器默认开启了DNS缓存功能谷歌浏览器清除DNS缓存的方法,所以在先访问有个不存在域名后,再把该域名添加到本地hosts文件指向本地后,用该浏览器访问依然会提示域名不存在。。。
为什么修改hosts不立即生效?--浏览器DNS缓存机制分析
解决方案:
解决方式:
有dns缓存功能,但是默认缓存时间只有1分钟,可以通过修改该默认值加快DNS解析速度,方法如下:
打开一个新的窗口,地址栏输 入 about:,回车,进入设置界面。然后搜索 . ,把原来的60改成 6000(表示缓存6000秒),再搜索. 把默认的20改成1000(表示缓存1000条)。如果没 有上面两个项目,新建它们即可,新建条目类型为整数型。 当然也可以按照需要设置成其它的值。
但是dns缓存太久了也会出问题,比如有的网站ip换了,就无法访问了。
针对这样的问题,还可以安装一个 插件来开启或者 关闭dns cache功能,。
IE解决方式:
禁用DNS缓存的方法谷歌浏览器清除DNS缓存的方法,将下面内容保存为注册表文件,在运行写入注册表:
5.00
[\\\\\ ]
""=dword:
""=dword:
""=dword:
写入注册表以后IE将不再缓存DNS,我们对hosts便会立即生效,无需再重启浏览器。
如果需要恢复IE的DNS缓存,只需清楚我们之前写入的注册表内容。跟上面的方法一样:
5.00
[\\\\\ ]
""=-
""=-
""=-
浏览器:
为了加快访问速度, 浏览器采用了预提DNS记录,在本地建立DNS缓存的方法,加快网站的连接速度。你在谷歌浏览器的地址栏中输入about:DNS,回车,就可以看到本地的DNS缓存。
下有个DNS 插件,但没有版本,其实在下清除DNS缓存非常简单:
1、用打开:://net-/#dns
2、点击上面的“clean host cache”
也可以清空在工具中选择清空Cache,这样DNS cache会一同清空。
微软下如何清空dns
在微软下,你可以用命令 / ns来清空dns 缓存内容。
你也可以用命令 /来查看dns缓存内容。
Mac OSX下如何清空dns缓存
在Mac OSX中,你可以用这个命令 -来清空保留的缓存。
bash-2.05a$ -
Linux 下如何清空dns缓存
在linux中,nscd进程负责管理DNS缓存。
要清空DNS缓存,重启nscd守护进程就行了。
要重启nscd进程,使用命令(不带引号)'/etc/rc.d/init.d/nscd '
via
赞
据说看到好文章不转的人,服务器容易宕机!
评论留言