開一篇補充2個常見但是重要的網(wǎng)絡問題:
1.域名和url是什么?
域名時一臺或者一組服務器的名稱,用來確定服務器在internet上的位置(解析為ip后查找)
url是統(tǒng)一資源定位符(uniform resource locator)
例如:
2.域名會解析為ip,那么域名和ip是一一對應的嗎?
不是的,域名和ip是一種多對多的關系。
這里有3點需要知道的:
① 可以將多個提供相同服務的服務器ip設置為一個域名
② 但在同一時刻,一個域名只能解析出一個ip地址(其中一臺服務器)
③ 同樣,一個ip可以綁定多個域名,數(shù)量不限
補充①的情況:
通常多個ip對應一個域名,解析為ip的時候回得到一個ip數(shù)組,程序員會拿第一個數(shù)組元素,那么這個ip就會被使用,其他ip就沒有被使用,會為了實現(xiàn)負載均衡,一些大型網(wǎng)站和cdn服務商會動態(tài)改變ip地址的順序,使得每一個ip地址有機會成為解析結果的第一個ip地址
補充③的情況:
一、dns運行原理
1、為什么要dns
dns的作用在于域名解析。每個網(wǎng)站通常都會有一個域名和至少一個ip地址。比如說百度的域名,112.80.248.74就是百度的ip地址。
我們想要訪問百度的時候只需要輸入域名就可以,當然ip也可以,為什么不使用ip登錄呢?看上面的數(shù)字就知道,一串復雜的數(shù)字難以記憶。我們每天要登錄大量的網(wǎng)站可能都需要一個小本子去記錄,訪問哪個查哪個,效率低下。因此只需要記住域名即可。
但是問題來了,互聯(lián)網(wǎng)是通過ip地址進行數(shù)據(jù)的傳輸?shù)?,因此就需要一種手段來把我們的域名映射為ip地址,這就是dns的作用。
2、dns工作原理
既然dns要把域名映射為ip地址,實現(xiàn)步驟是什么樣呢?別著急,我們先來了解一下域名服務器的概念。
從上面這張圖可以看到,域名的管理是分層次的。最高級是根,也叫做根服務器。從上往下功能逐漸細化。dns就是和這些服務器進行打交道。
有了上面的這些概念,現(xiàn)在我們再來認識一下dns的工作原理就容易多了。dns域名解析的過程有兩種,我們分別來看一下:
(1)遞歸查詢
意思是每次當前服務器查不到時,都由當前的域名服務器代勞查詢。
(2)迭代查詢
意思是每次當前服務器查不到時,都由自己親自再去下屬服務器查詢。
上面解釋的比較清晰。太多的文字并不能很好地解決問題。
ok,知道了dns如何進行域名解析之后,回到我們今天文章的問題。
二、dns解析域名與ip不一致,訪問了該域名會發(fā)生什么
我們的問題是基于dns工作失敗之后出現(xiàn)的狀況。因此我們答案就是域名解析出現(xiàn)了故障會發(fā)生什么。
(1)域名和ip不一致,域名解析成了其他的的ip地址,但是這個ip地址正確。訪問該域名就會訪問其他的網(wǎng)站。
如何去做呢?知乎上有一個阿里巴巴的回答:
從技術上來講是可以解析到任意ip地址的,這時候針對這個地址發(fā)起http訪問,http頭中的host字段會是你的域名(而非該ip對應站點的域名),如果對方的網(wǎng)站http服務器沒有做對應的防護就可以訪問,如果方的網(wǎng)站http服務器有防護則無法訪問。
(2)域名和ip不一致,域名解析成了其他的的ip地址,但是這個ip地址錯誤,訪問該域名就會失敗。
還有一種情況:訪問站點對應的ip地址沒有問題,然而訪問他的域名就會出現(xiàn)錯誤。
ok,今天的文章先到這。如有問題還請批評指正。