DNS解析過程
當咱們從瀏覽器的地址連中輸入一個www.xxoo.com時,DNS解析有大體是個過程,以下:windows
-
- 瀏覽器先檢查自身緩存中有沒有解析過的這個域名(www.xxoo.com)對應的ip地址,若是有,解析結束,同時域名被緩存的時間也可經過TTL屬性來設置。
- 若是瀏覽器緩存中沒有(專業術語稱爲沒有命中),瀏覽器會檢查操做系統緩存中有沒有對應的已解析過的結果。而操做系統也有一個域名解析的過程。在windows中可經過c盤裏一個叫hosts的文件來設置,若是你在這裏指定了一個域名對應的ip地址,那瀏覽器會首先使用這個ip地址。
可是這種操做系統級別的域名解析過程也被不少黑客利用,經過修改你主機的hosts文件,把特定的域名解析到他指定的IP上,形成所謂的域名劫持。因此在windows7中將hosts文件設置成了readonly,防止被惡意篡改。
- 若是至此尚未命中域名,纔會真正的請求本地域名服務器(LDNS)來解析這個域名,這臺服務器通常在你的城市的某個角落,距離你不會很遠,而且這臺服務器的性能都很好,通常都會緩存域名解析結果,大約80%的域名解析到這裏就完成了。
- 若是LDNS仍然沒有命中,就直接跳到Root Server 域名服務器請求解析;
- 根域名服務器返回給LDNS一個所查詢域的主域名服務器(gTLD Server,國際頂尖域名服務器,如.com .cn .org等)地址;
- 此時LDNS再發送請求給上一步返回的gTLD;
- 接受請求的gTLD查找並返回這個域名對應的Name Server的地址,這個Name Server就是網站註冊的域名服務器;
- Name Server根據映射關係表找到目標IP,返回給LDNS;
- LDNS緩存這個域名和對應的IP;
- LDNS把解析的結果返回給用戶,用戶根據TTL值緩存到本地系統緩存中,域名解析過程至此結束。

參考連接瀏覽器
詳解DNS域名解析全過程緩存