一般来说,windows 下操作系统和浏览器把某域名解析为 ip 地址以后,都会把解析结果做 cache ,也就是在一定时间内,该域名会一直被解析为该 ip ,而不管该域名对应的 ip 是否变化或者还绑定了其他 ip 。而浏览器通常都会忽略操作系统的 dns cache 。操作系统的 cache 可以通过 ipconfig /flushdns 命令来清除,而浏览器的 dns cache ,则一般需要启动一个新的浏览器进程(ie 的浏览器 dns cache 是以进程为基本单元的)。
在 ping 一个域名的时候,得到的 TTL 表示 Time To Live ,表示的就是建议操作系统对 dns 做 cache 的时间。浏览器的 dns cache 一般由浏览器自己控制,某些版本的 ie 中 默认 cache 是 30 分钟,也可以通过修改注册表来指定值,参考 >http://support.microsoft.com/default.aspx?scid=KB;en-us;263558 :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ 中创建 DnsCacheTimeout 和 ServerInfoTimeOut ,类型为 DWORD 。都指定为 5 ,浏览器就的 dns cache 过期时间就是 5s 。
一点比较奇怪的是 http://support.microsoft.com/kb/813827 中说明建立值是以毫秒为单位。虽然针对 ie 不完全一致,但是有重合的版本。我希望的是尽快 timeout ,不再深究。
firefox 也可以在 about:config 中找到相关的配置选项。
原文地址:
http://www.hickwu.com/?p=226
posted on 2009-09-18 15:15
梅雪香 阅读(508)
评论(0) 编辑 收藏