最近在讀《深入分析Java Web技術內幕》,算是對DNS服務器域名解析有個大體的理解,以下的內容來自個人對書中內容的整理
1.什么是域名解析?
當我們在瀏覽器的地址欄輸入一個地址時,如www.xxxx.com,之后就可以跳轉到對應的頁面,但是為什么呢?要知道機器是只認識IP地址的,
他並不理解我們輸入的www這種格式是什么意思,這個時候時候就要用到域名解析了
2.域名解析的步驟
首先粗略的說,域名解析就是通過DNS把www.xxxx.com這種格式的域名解析成一個IP地址,之后通過IP地址找到對應的服務器,當然后面就是瀏覽器請求數據了,
這不是咱們的關注點.接下來詳細的講解具體的解析過程
①用戶輸入一個域名,瀏覽器去自己的緩存中尋找是否有對應的解析過的IP地址(這個緩存有大小和時間限制,),沒有轉入下一步
②瀏覽器檢查操作系統的緩存(有大小和時間限制)中是否有這個域名解析過的結果,在我們常說的host文件(c:/windows/system32/etc)中可以看到
localhost被解析成127.0.0.1,這也是為什么你用tomcat部署web項目后,用瀏覽器訪問總是要輸入localhost,當然我更習慣直接輸入
127.0.0.1:端口/項目名/xxx這種,因為你的host文件有時會被惡意更改(拓展點說叫做域名劫持),這樣你輸入localhost就無法被解析了
如果這一步還沒有找到域名對應的IP,轉入下一步
③瀏覽器向LDNS發送請求,L代表local,所以LDNS也就是本地的域名解析器,同樣的在自己的緩存里找,沒找到向根域名服務器(Root Server)發送請求
④根域名服務器返回給LDNS一個主域名服務器地址(gTLD Server),比如我們輸入的含有.com的域名,那么返回的這個就是com的主域名服務器地址
⑤接下來LDNS向gTLD Server發送請求,后者返回給前者此域名對應的Name Server域名服務器的地址
⑥然后LDNS向Name Server發送請求,Name Server對此域名進行解析(查詢域名與IP地址的映射表.一個IP地址可能對應多個域名)
⑦NameServer返回解析結果給LDNS,LDNS將結果反饋給瀏覽器
⑧瀏覽器通過此IP地址與默認的80端口與服務器建立連接,進行數據交互
總結:可以看到在域名解析的過程中,LDNS處於一個中心節點的位置,對根服務器發送請求后獲得數據再向主域名服務器發送數據.......
貼下書中的圖吧
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。