DNS全稱Domain Name Systems, 用來把域名映射到實際的ip上。html
dns裏面有4種類型的服務器:瀏覽器
瀏覽器緩存: 瀏覽器首先會檢查緩存中有沒有這個域名對應的解析過的IP地址,若是緩存中有,就直接返回。瀏覽器的緩存也有一些限制,好比大小限制和時間限制。緩存時間通常在幾分鐘到幾小時不等,過短了緩存命中率低,太長了容易更新不及時。緩存
操做系統緩存:若是瀏覽器緩存沒有命中,瀏覽器就會去操做系統中查找dns解析結果,這個解析文件mac裏面放在/etc/host下面,平時改host來作測試就用了這個原理。服務器
LDNS(local dns): 若是都沒命中,那就會找到本地的dns服務器(recursive dns server)。這個服務器通常不會太遠,通常就由移動、電信這種運營商來提供。服務器會緩存上一次的結果來提高效率。若是緩存沒有命中,那就會向Root nameserver發請求。dom
Root nameserver: 返回給LDNS一個所查詢的主域名服務器(gTLD Server)地址。gTLD是國際頂級域名服務器,如.com、.cn、.org等,全球只有13臺左右測試
LDNS:拿到Root nameserver返回的結果,向下一級TLD查找。google
TLD nameserver:返回對應的Authoritative nameserver的地址,這個服務器一般就是用戶註冊的域名服務器,例如用戶在某個域名服務提供商申請的域名,那麼這個域名解析任務就由這個域名提供商的服務器來完成操作系統
LDNS: 拿到TLD nameserver返回的結果,向下一級Authoritative nameserver查找。.net
Authoritative nameserver:查詢存儲的域名和IP的映射關係表,在正常狀況下都根據域名獲得目標IP地址,連同一個TTL值一塊兒返回code
LDNS:緩存這個域名和IP的對應關係,緩存時間由TTL值控制, 並把結果返回給client。
dns服務器上可能存在有6種不一樣類型的記錄: