
瀏覽器在獲取網(wǎng)站域名的實際IP地址后會對其IP進行緩存,減少網(wǎng)絡(luò)請求的損耗。每種瀏覽器都有一個固定的DNS緩存時間,其中Chrome的過期時間是1分鐘,在這個期限內(nèi)不會重新請求DNS。Chrome瀏覽器看本身的DNS緩存時間比較方便,在地址欄輸入:chrome://net-internals/#dns 即可看到當前瀏覽器的緩存;
OS緩存會參考DNS服務(wù)器響應(yīng)的TTL值,但是不完全等于TTL值。測試DNS解析為例:C:\windows\system32>ipconfig /displaydns
接著通過域名解析命令獲取ISP端的域名服務(wù)中的TTL時間:
接著通過域名解析命令獲取ISP端的域名服務(wù)中的TTL時間:
C:\Users\cmcc>nslookup -d 網(wǎng)址
可以看到本地ISP服務(wù)器上緩存的時間,就算刷新了本機操作系統(tǒng)緩存,ISP上仍然存在。
可以看到本地ISP服務(wù)器上緩存的時間,就算刷新了本機操作系統(tǒng)緩存,ISP上仍然存在。
Windows
Windows2003之前的DNS緩存設(shè)置時間在注冊表的位置是HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Dnscache/Parameters
鍵名MaxCacheEntryTtlLimit,為DNS緩存條目TTL最大值,在XP和2003系統(tǒng)中此項名稱為MaxCacheTtl
IOS
按照官方文檔說法,iOS設(shè)備上每24小時刷新一次DNS緩存
以下列出了一些瀏覽器的DNS緩存時間:
1、Chrome
為了加快訪問速度,Google Chrome瀏覽器采用了預(yù)提DNS記錄,在本地建立DNS緩存的方法,加快網(wǎng)站的連接速度。
chrome://net-internals/#dns 這里可以看各域名的DNS 緩存時間。Chrome對每個域名會默認緩存60s。
2、IE
IE將DNS緩存30min。
3、Firefox
Firefox有DNS緩存功能,但是默認緩存時間只有1分鐘,可以通過修改該默認值加快DNS解析速度
ISP(電信運營商)緩存有些不靠譜,有些緩存服務(wù)器(不多)會忽略網(wǎng)站DNS提供的TTL,自己設(shè)置一個較長的TTL,導(dǎo)致頂級DNS更新時不能及時拿到新的IP地址。ametit.com
可以看出,在從Root DNS請求域名解析的過程中,有太多的層次影響DNS的獲取,緩存是雙刃劍,提高了獲取DNS的速度,也會影響DNS在IP變更時不能及時更新到最新。