DNS域名解析介紹

一、域名解析的過程

當我們在瀏覽器的地址欄輸入一個地址鏈接時,其實發生了很多事情。其中最初的一步就是目標主機地址的解析。這個過程是比較複雜的,下面主要講解域名解析的主要過程。例如,我們在地址欄輸入www.baidu.com,那麼在解析這個域名的過程中主要發生瞭如下的動作:

  1. 瀏覽器會檢查緩存中有沒有這個域名對應的解析過的IP地址,如果緩存中有,這個解析過程就將結束。瀏覽器對域名的緩存是有時間限制,一般情況下是幾十秒,不同的瀏覽器TTL不同。谷歌瀏覽器可以通過這個地址來查看域名過期情況。chrome://net-internals/#dns
  2. 如果用戶的瀏覽器緩存中沒有,瀏覽器會查找操作系統緩存中是否有這個域名對應的DNS解析結果。本機操作系統緩存的DNS域名結果存在的時間長短不一致。可以通過ipconfig/displaydns來查看本機操作對各個域名的緩存結果。
  3. 如果在本機操作系統緩存中還是無法獲取到對應的DNS,那麼就會讀取操作系統中的靜態DNS即hosts文件。文件的存放地址如下:
    C:\Windows\System32\drivers\etc\hosts
  4. 如果在hosts文件中還是無法找到對應的DNS,那麼就會到ISP中的DNS服務器中取查找。這個ISP就是你連接網絡的供應商,如電信、聯通。至此,絕大多數的DNS都會在這裏被解析到。ISP中的DNS也有緩存,我們可以通過nslookup -d www.zhihu.com來查看。
  5. 如果在ISP的DNS服務器中還是無法找到,就會到國際頂級域名服務器gTLD,如.com、.cn、.org等。
  6. 找到對應DNS的對應關係之後會返回一個TTL值和IP,ISP的DNS服務器就會根據這個TTL值來進行緩存,並繼續返回給客戶端,本地操作系統得到這個值之後也會進行緩存。
    至此,一個完整的域名解析過程就完了。

二、域名訪問常見問題

在我們開發web項目的過程中時常會碰到這樣的問題:修改了host文件之後,在瀏覽輸入地址時總訪問不到想要的結果。這裏如果你對DNS域名解析的過程有所瞭解的話應該會明白,那就是當你前一步訪問這個域名時已經在瀏覽器和本地操作系統中存在了該域名的緩存。此時的做法有兩個:
1.清除瀏覽器緩存或者等待1分鐘瀏覽器域名緩存自動過期。
2.清楚操作系統緩存。ipconfig/flushdns

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章