有DNS的地方,就有緩存。
瀏覽器、操作系統、Local DNS、根域名服務器,它們都會對DNS結果做一定程度的緩存。本文總結一些常見的瀏覽器和操作系統的DNS緩存時間。
Table of Contents
1 操作系統的DNS緩存
1.1 windows
windows DNS緩存的默認值是 MaxCacheTTL,見這里,它的默認值是86400s,也就是一天。它是TTLu 這篇文章列出了一些瀏覽器的DNS緩存時間。
瀏覽器DNS緩存的時間跟ttl值無關,每種瀏覽器都使用一個固定值。
1.2 macOS
macOS 嚴格遵循DNS協議中的TTL
2 瀏覽器的DNS緩存
2.1 chrome
為了加快訪問速度,Google Chrome瀏覽器采用了預提DNS記錄,在本地建立DNS緩存的方法,加快網站的連接速度。
chrome://net-internals/#dns 這里可以看各域名的DNS 緩存時間。chrome對每個域名會默認緩存60s。
2.2 IE
IE將DNS緩存30min。見這里
2.3 firefox
Firefox有dns緩存功能,但是默認緩存時間只有1分鍾,可以通過修改該默認值加快DNS解析速度,方法如下:
打開一個新的窗口,地址欄輸 入 about:config,回車,進入設置界面。然后搜索 network.dnsCacheExpiration ,把原來的60改成 6000(表示緩存6000秒),再搜索network.dnsCacheEntries 把默認的20改成1000(表示緩存1000條)。如果沒 有上面兩個項目,新建它們即可,
新建條目類型為整數型。 當然也可以按照需要設置成其它的值。
2.4 safari
約為10s
3 瀏覽器對DNS解析結果的處理
如果一個域名的DNS解析結果會有多個的話,瀏覽器是如何處理的呢?
Chrome瀏覽器會優先向第一個IP發起HTTP請求,如果不通,再向后面的IP發起HTTP請求。