DNS域名解析過程
參考知乎:https://www.zhihu.com/question/23042131
當你通過瀏覽器輸入url訪問資源時,會請求DNS解析域名成對應的IP地址,由IP地址在去與遠程服務器建立socket連接獲取資源
1.瀏覽器緩存
輸入url之后,瀏覽器會檢查緩存中是否有該域名解析過的IP,若有,則解析結束。
瀏覽器緩存域名也是有時間和大小限制的,可以通過TTL屬性來設置.這個時間太長或太短都不好,當域名對應解析的IP地址變化時,會導致部分用戶訪問不到網站
2.操作系統緩存
在C:\Windows\System32\drivers\etc\hosts文件來設置,比如打開github的速度太慢,我就在其hosts文件下加入了github的ip地址
3.路由器緩存
以上三步都為客戶機DNS緩存
4.當地互聯網提供商緩存
當前三種都無法解析時,則進入當地互聯網提供商(LDNS,Location DNS)緩存中查找。比如你是在學校接入互聯網,那么你的LDNS服務器則在學校,如果你在小區接入互聯網則你的LDNS服務器可能在聯通,電信,移動。80%的域名解析到此就結束了
查看本地DNS服務器信息可以通過ipconfig或者ipconfig\all
5.根域名服務器
以上均為完成時,進入根服務器查詢,根域名服務器收到請求后查看區域文件記錄,若無則將其管轄范圍內的頂級域名(如.com)服務器IP告訴LDNS
6.頂級域名服務器
頂級域名服務器收到請求后查看區域文件記錄,若無則將其管轄范圍內主域名服務器的IP地址告訴本地DNS服務器;
7.主域名服務器
8.保存結果至緩存
將解析結果返還給用戶,用戶根據TTL值緩存到本地系統,域名解析過程結束
關於根域名,頂級域名
參考這篇文章,順便了解下ICANN公司與Verisign公司:http://www.ruanyifeng.com/blog/2018/05/root-domain.html
如果一個.com
或.net
域名售價10美元,ICANN 和 Verisign 合計拿走8.03美元,我發現百度第二次續費域名要96元一年,那百度它也賺了有一半
關於解析記錄:A記錄,CNAME
A記錄:A代表Adress,A記錄可以將多個域名解析到一個IP地址,但是不能將一個域名解析到多個IP地址
CNAME:即別名解析。即可以為一個域名設置一個或多個別名
頂級域名,一級域名,二級域名,等
頂級域名即是一級域名,如.com,.net,.cn等等
二級域名即是baidu.com,zengcongcong.cn等
三級域名即是www.baidu.com等