有dns的地方,就有緩存。瀏覽器、操做系統、Local DNS、根域名服務器,它們都會對DNS結果作必定程度的緩存。本文總結一些常見的瀏覽器和操做系統的DNS緩存時間chrome
瀏覽器先查詢本身的緩存,查不到,則調用域名解析函數庫對域名進行解析,以獲得此域名對應的IP地址瀏覽器
DNS查詢順序:瀏覽器緩存→系統緩存→路由器緩存→ISP DNS 緩存→遞歸搜索緩存
一、chrome:服務器
爲了加快訪問速度,Google Chrome瀏覽器採用了預提DNS記錄,在本地創建DNS緩存的方法,加快網站的鏈接速度。chrome://net-internals/#dns 這裏能夠看各域名的DNS 緩存時間。chrome對每一個域名會默認緩存60s。socket
在url地址欄輸入chrome://chrome-urls/能夠看到chrome全部的配置界面;函數
選擇chrome://dns或者chrome://net-internals/#dns能夠查看chrome瀏覽器的dns緩存信息網站
點擊「Clear host cache」+而後選擇"clear cache"和 " flush socket",能夠清空chrome的dns緩存url
二、firefox:spa
配置含義:操作系統
network.dnsCacheEntries:緩存的數量
network.dnsCacheExpiration:dns緩存的時間
network.dnsCacheExpirationGracePeriod:dns緩存的時間,設置爲0表示不緩存
三、瀏覽器對DNS解析結果的處理
若是一個域名的DNS解析結果會有多個的話,瀏覽器是如何處理的呢?Chrome瀏覽器會優先向第一個IP發起HTTP請求,若是不通,再向後面的IP發起HTTP請求
四、驗證一把:如圖,有DNS Lookup、Initial connection(TCP鏈接)、SSL鏈接
再次請求,上面的三個過程沒有了,由於瀏覽器有DNS 緩存;TCP長鏈接尚未斷開;SSL鏈接也還在
如圖所示點擊「Flush sockets」
三個請求從新發起:DNS查詢、TCP三次握手、SSL鏈接