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