一般來說,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
梅雪香 閱讀(519)
評論(0) 編輯 收藏