域名解析:如何從瀏覽器到服務(wù)器
為什么域名和IP地址要共存
域名與IP地址的共存,主要出于兩個(gè)方面的考慮:一是提升用戶體驗(yàn),二是提高運(yùn)行效率。具體來(lái)說, IP地址是一串32位的數(shù)字,使用十進(jìn)制表示時(shí),長(zhǎng)度可能達(dá)到192.168.1.0這樣的長(zhǎng)度。想象一下,如果每次訪問網(wǎng)站都需要輸入這樣一長(zhǎng)串?dāng)?shù)字,用戶體驗(yàn)會(huì)相當(dāng)糟糕。不僅記憶這些數(shù)字對(duì)許多人來(lái)說是個(gè)難題,而且我們常用的網(wǎng)站肯定不止一個(gè),每次都要輸入這么長(zhǎng)的地址,顯然非常不便捷。
與此同時(shí),如果我們?cè)谕茝V網(wǎng)站時(shí)使用這樣的長(zhǎng)串?dāng)?shù)字地址,顯然也不利于傳播。因此,域名應(yīng)運(yùn)而生,它的存在使得人們可以更容易地記憶和推廣網(wǎng)站地址。
然而,僅僅依靠域名還不夠高效。 IP地址在計(jì)算機(jī)網(wǎng)絡(luò)中扮演著至關(guān)重要的角色。 IPv4中的IP地址僅需4個(gè)字節(jié),而域名則可能需要幾十到幾百個(gè)字節(jié)來(lái)表示。這種差異使得底層路由器在處理域名時(shí)負(fù)擔(dān)加重。因此,盡管域名方便了人類使用,但I(xiàn)P地址在計(jì)算機(jī)網(wǎng)絡(luò)的底層運(yùn)行中仍然發(fā)揮著不可或缺的作用。


域名是如何被解析為IP地址的呢?
這就要涉及到 DNS(域名系統(tǒng))的解析過程。當(dāng)我們?cè)跒g覽器中輸入一個(gè)域名時(shí),瀏覽器會(huì)向DNS服務(wù)器發(fā)送請(qǐng)求,查詢?cè)撚蛎麑?duì)應(yīng)的IP地址。DNS服務(wù)器會(huì)根據(jù)預(yù)先存儲(chǔ)的域名與IP地址的映射關(guān)系,返回相應(yīng)的IP地址信息。這樣,我們就能夠通過域名來(lái)訪問網(wǎng)站,而底層路由器則繼續(xù)使用IP地址進(jìn)行高效的網(wǎng)絡(luò)傳輸。

答案是,這種映射關(guān)系是提前配置好的。當(dāng)然,這并非唯一的可能性, DNS有時(shí)也會(huì)通過動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)進(jìn)行分配。例如,在MacOS系統(tǒng)中,DNS的配置就如同以下示例所示。

當(dāng)然,除了圖形界面配置,你還可以選擇通過命令行來(lái)查看和修改DNS設(shè)置。在MacOS系統(tǒng)中,相關(guān)的配置文件位于“/etc/resolv.conf”路徑下。一旦你擁有了DNS服務(wù)器,接下來(lái)的配置步驟可能會(huì)顯得相對(duì)簡(jiǎn)單。
我給你一個(gè)域名,你能迅速返回其對(duì)應(yīng)的IP地址嗎?當(dāng)然,互聯(lián)網(wǎng)上有數(shù)以萬(wàn)計(jì)的DNS服務(wù)器,我們不可能逐一查詢。

DNS查詢優(yōu)化
那么,瀏覽器在輸入域名到頁(yè)面展示的過程中,究竟是如何高效完成這一任務(wù)的呢?這背后其實(shí)涉及到了 DNS的分層優(yōu)化。
要理解這一優(yōu)化機(jī)制,我們首先得探究域名的構(gòu)成。域名并非簡(jiǎn)單的字符串堆砌,而是由多個(gè)域組成,每個(gè)域之間以點(diǎn)號(hào)分隔。例如,www.google.com這個(gè)域名,從直觀上看,我們可能會(huì)認(rèn)為www是主域,google是次級(jí)域,而實(shí)際上,根域(即最左邊的點(diǎn)號(hào))才是域名的起點(diǎn)。
為了更清晰地展示這種層次結(jié)構(gòu),我們可以將其分為幾個(gè)層級(jí):根域、一級(jí)級(jí)域、二級(jí)域名(或子域名)、以及主機(jī)名。通過這種分層設(shè)計(jì), DNS能夠高效地定位和解析域名,從而實(shí)現(xiàn)快速的網(wǎng)絡(luò)連接。

NS服務(wù)器采用分布式存儲(chǔ)方式,將域名的數(shù)據(jù)分散存儲(chǔ)在多臺(tái)DNS服務(wù)器上。然而,同一域的數(shù)據(jù)總是被集中存儲(chǔ)在同一臺(tái)DNS服務(wù)器上,且同一臺(tái)服務(wù)器能同時(shí)存儲(chǔ)多個(gè)域的數(shù)據(jù)。這種設(shè)計(jì)方式,用圖表來(lái)展示,就是這樣的:
關(guān)于如何獲取根服務(wù)器的信息,我們的設(shè)備或上網(wǎng)設(shè)備都會(huì)內(nèi)置根服務(wù)器列表。總共有13臺(tái)根DNS服務(wù)器,其地址可以直接獲取而無(wú)需查詢。當(dāng)然,這13臺(tái)服務(wù)器難以應(yīng)對(duì)全球互聯(lián)網(wǎng)用戶的請(qǐng)求,因此實(shí)際上存在許多鏡像服務(wù)器來(lái)分擔(dān)負(fù)載。
接下來(lái),我們將通過實(shí)際操作來(lái)驗(yàn)證這些概念。
在DNS查詢中,QUESTION SECTION下的完整域名www.google.com包含了根域。而緊隨其后的IN和A,分別代表網(wǎng)絡(luò)類型和網(wǎng)絡(luò)地址類型。 網(wǎng)絡(luò)類型IN表明當(dāng)前查詢針對(duì)的是互聯(lián)網(wǎng),這是默認(rèn)的網(wǎng)絡(luò)類型。而類型A則明確指出我們正在查詢的是IP地址。
在ANSWER SECTION中,DNS服務(wù)器的響應(yīng)結(jié)果得以展示。通常,響應(yīng)結(jié)果會(huì)包含多條DNS記錄,每條記錄都對(duì)應(yīng)一個(gè)IP地址。此外,69的TTL值以秒為單位,表示在接下來(lái)的69秒內(nèi)無(wú)需再次發(fā)送請(qǐng)求。
最下方的統(tǒng)計(jì)信息提供了本次DNS查詢的耗時(shí),以及請(qǐng)求的DNS服務(wù)器的地址和端口。值得注意的是,由于某些命令行工具可能省略了對(duì)根服務(wù)器的請(qǐng)求顯示,我們可以通過添加+trace參數(shù)來(lái)查看詳細(xì)的分級(jí)查詢過程。以www.36kr.com為例,我們可以進(jìn)一步探索DNS查詢的詳細(xì)步驟。
在DNS查詢過程中,首先會(huì)向根域名服務(wù)器發(fā)起請(qǐng)求,隨后它會(huì)指引我們找到負(fù)責(zé)com域的DNS服務(wù)器。接著,我們會(huì)進(jìn)一步向負(fù)責(zé)36kr.com域的DNS服務(wù)器請(qǐng)求。最終,通過這一系列的查詢,我們成功地獲取到了www.36kr.com的IP地址。
然而,如果每次查詢都從根服務(wù)器開始,顯然是不高效的。由于域名和IP地址的對(duì)應(yīng)關(guān)系通常變動(dòng)不大,因此DNS服務(wù)器會(huì)采用 緩存機(jī)制來(lái)存儲(chǔ)查詢結(jié)果,以避免不必要的重復(fù)查詢。
雖然我在描述時(shí)僅提及一個(gè)DNS服務(wù)器中存儲(chǔ)同級(jí)別域信息的情況,但實(shí)際上,同一臺(tái)DNS服務(wù)器可能也保存著不同層級(jí)的域信息。例如,com域和google.com域的信息可能就存儲(chǔ)在同一臺(tái)機(jī)器上。然而,值得注意的是, 這些緩存數(shù)據(jù)并非永久有效。倘若在緩存有效期內(nèi)DNS數(shù)據(jù)發(fā)生了變更,那么緩存中的數(shù)據(jù)將不再準(zhǔn)確。此時(shí),為了確保數(shù)據(jù)的最新性,我們需要手動(dòng)清除舊的DNS緩存。

相關(guān)文章

NameSilo域名解析教程(DNS服務(wù)器記錄修改及設(shè)置)
在本NameSilo域名解析教程中,我們介紹了兩種方法,它們都可以成功綁定域名和主機(jī),本質(zhì)上沒有任何區(qū)別,二選一即可,如果你購(gòu)買的主機(jī)提供 NS,那就優(yōu)先選擇修改DNS服務(wù)器2025-02-23DNS隱性 URL 和顯性 URL 的區(qū)別及URL轉(zhuǎn)發(fā)原理
這篇文章主要介紹了DNS隱性 URL 和顯性 URL 的區(qū)別及URL轉(zhuǎn)發(fā)原理,需要的朋友可以參考下2016-10-19- Godaddy作為全球最大的域名經(jīng)銷商,一直是廣大用戶購(gòu)買域名的首選去處,加之其對(duì)支付寶特別是銀聯(lián)卡的支持,對(duì)國(guó)內(nèi)用戶尤其貼心,本文就為大家送出GoDaddy的域名購(gòu)買及DNS配置2016-05-17
Network Solutions的域名購(gòu)買及DNS解析設(shè)置教程
Network Solutions經(jīng)常推出0.99美元的域名購(gòu)買優(yōu)惠活動(dòng),而且優(yōu)惠包括大量.com頂級(jí)域名,吸引了很多用戶,這里就來(lái)為大家整理一下Network Solutions的域名購(gòu)買及DNS解析設(shè)置教2016-05-13- 這篇文章主要介紹了在EuroDns上注冊(cè)域名的簡(jiǎn)明教程,EuroDNS可提供的域名后綴相當(dāng)豐富,經(jīng)常翻GoDaddy的朋友也不妨去EuroDNS瞅瞅中意的域名~需要的朋友可以參考下2016-04-20
在Dynadot上購(gòu)買域名及設(shè)置域名解析轉(zhuǎn)移的教程
這篇文章主要介紹了在Dynadot上購(gòu)買域名及設(shè)置域名解析轉(zhuǎn)移的教程,相比Godaddy和Namecheap,在Dynadot上搶注域名的用戶比較多,需要的朋友可以參考下2016-04-15在Windows Server 2012部署DNS服務(wù)器的教程
這篇文章主要介紹了在Windows Server 2012部署DNS服務(wù)器的教程,文后還附了國(guó)內(nèi)常用的幾個(gè)公共DNS服務(wù)器的IP地址方便查閱,需要的朋友可以參考下2016-03-07- 這篇文章主要介紹了阿里云服務(wù)器上添加刪除和修改域名解析記錄的教程,通過阿里云主機(jī)的圖形化面板來(lái)操作非常簡(jiǎn)便,需要的朋友可以參考下2016-02-07
阿里云服務(wù)器中使用萬(wàn)網(wǎng)云域名解析的設(shè)置教程
這篇文章主要介紹了阿里云服務(wù)器中使用萬(wàn)網(wǎng)云域名解析的設(shè)置教程,阿里云中使用自家的萬(wàn)網(wǎng)DNS的話配置后基本上就可以立即生效,需要的朋友可以參考下2016-02-03使用DNS服務(wù)商DNSPod的免費(fèi)域名解析服務(wù)
這篇文章主要介紹了使用DNS服務(wù)商DNSPod的免費(fèi)域名解析服務(wù)的方法,注意的是文中提到如果不需要考慮電信聯(lián)通雙線等情況則一般不必額外配置DNS服務(wù),需要的朋友可以參考下2015-12-31


