小菜學(xué)網(wǎng)絡(luò)之域名系統(tǒng)
本文轉(zhuǎn)載自微信公眾號「小菜學(xué)編程」,作者fasionchan。轉(zhuǎn)載本文請聯(lián)系小菜學(xué)編程公眾號。
在時間查詢服務(wù)中,客戶端需要知道服務(wù)端的 IP 地址和端口號,才能發(fā)起請求。但我們應(yīng)該如何記憶 IP 地址和端口號呢?要知道,人類記憶數(shù)字型信息,比如電話號碼等,并不擅長。
端口其實還好。因為經(jīng)過多年的發(fā)展,常用網(wǎng)絡(luò)服務(wù)形成了一套約定俗成的慣例,這就是所謂的 知名端口 。舉個例子, Web 服務(wù)一般采用 80 端口。我們用瀏覽器訪問網(wǎng)站,甚至都不需要輸入端口號,默認(rèn)就是 80 端口。
IP 地址就不一樣了。10.35.87.61 這個 IP 地址比 80 端口難記多了。不僅如此,不同的服務(wù)可能部署在不同的機器,IP 地址也肯定是不一樣的。很顯然,百度的服務(wù)器,地址肯定跟淘寶的不一樣。
我們每天都會訪問很多網(wǎng)站,想記住它們的 IP 地址,顯然是不可能的!如果能夠通過名字來訪問,則事半功倍,因為我們記憶文本要比記憶數(shù)字更拿手。
為此,網(wǎng)絡(luò)先驅(qū)們發(fā)明了域名和域名系統(tǒng),這就是本文的主角。
域名
域名是 網(wǎng)域名稱 ( domain name )的簡稱,它是一串以點號分隔的字符串,用于標(biāo)識一臺或一組計算機。域名可作為 IP 地址的別名,更便于記憶。
我有一個博客網(wǎng)站,部署在阿里云上,服務(wù)器 IP 是 163.181.33.227 ,但讀者們肯定記不住 IP 地址的。為此,我申請了一個域名 www.fasionchan.com 作為別名。這樣就好記多了,因為 fasionchan 是我的英文名。
那么,域名該如何理解呢?點號分隔的各個部分都有什么作用呢?
實際上,域名是一個分層次的命名空間,各種域名都隸屬于根域 . 。位于第一層的域名稱為 一級域名 或 頂級域名 ;第二層的域名稱為 二級域名 ;以此類推。
以 www.fasionchan.com.為例,從右往左讀依次是:
- 根
- 一級域名(頂級域名):com
- 二級域名:fasionchan
- 三級域名:www
請注意,域名是從根開始,只不過我們經(jīng)常省略域名最右邊的點號 . 。
某個域下層的域稱為 子域 ,上層的域稱為 父域 。舉個例子,從 fasionchan.com 的角度看,它的父域是 .com ,子域包括 www.fasionchan.com 、 linux.fasionchan.com 等等。子域從屬與父域,父域?qū)ψ佑驌碛泄芾頇?quán)。
域名由注冊管理機構(gòu)負(fù)責(zé)管理,可以通過注冊商來注冊,先到先得。
域名注冊后,所有人擁有域名的管理權(quán):不僅可以修改域名關(guān)聯(lián)的 IP ,還可以分配子域名。域名 fasionchan.com 被我注冊后,我可以修改它關(guān)聯(lián)的 IP ,還可以隨意添加子域名 www.fasionchan.com 。
我甚至還可以添加一個子域 lumy.fasionchan.com ,送給我的朋友 Lumy 。同理, Lumy 擁有 lumy.fasionchan.com 的管理權(quán)。她可以修改域名關(guān)聯(lián)的 IP ,也可以隨意添加子域名。
頂級域
域名的第一級是 頂級域 ,包括
- 通用頂級域 ,例如 .com 、 .net 和 .org 等;
- 國家和地區(qū)頂級域 ,例如 .cn 、 .us 等;
| 通用頂級域 | 含義 |
|---|---|
| .com | 商業(yè)公司 |
| .edu | 教育機構(gòu) |
| .net | 互聯(lián)網(wǎng)服務(wù)供應(yīng)商 |
| .org | 非營利組織、國際機構(gòu)等 |
| 國家和地區(qū)頂級域 | 含義 |
|---|---|
| .cn | 中國 |
| .hk | 中國香港 |
| .mo | 中國澳門 |
| .tw | 中國臺灣 |
| .jp | 日本 |
| .us | 美國 |
域名系統(tǒng)
域名系統(tǒng) ( domain name system ,簡稱 DNS ),是互聯(lián)網(wǎng)提供的一項名字服務(wù)。我們可以將 DNS 看作一個分布式數(shù)據(jù)庫,它保存著域名和 IP 的映射關(guān)系。
有了這個對應(yīng)關(guān)系,我們就可以通過 域名 ( domain name )來訪問網(wǎng)絡(luò)服務(wù),不用再苦苦記憶 IP 地址。要知道域名 www.fasionchan.com 比 IP 地址 163.181.33.224 好記多了。
那么,域名系統(tǒng)到底是怎么工作的呢?
域名注冊后,所有人可將域名關(guān)聯(lián)的 IP 登記到域名系統(tǒng)。這是一個分布式數(shù)據(jù)庫,以域名為鍵,以 IP 為值。域名系統(tǒng)提供一些服務(wù)器用戶查詢,這就是 DNS服務(wù)器( dns server )。
當(dāng)互聯(lián)網(wǎng)用戶通過瀏覽器訪問網(wǎng)站時,以 https://www.fasionchan.com 為例:
- 瀏覽器解析 URL ,得到主機域名 www.fasionchan.com ;
- 瀏覽器向 DNS 服務(wù)器發(fā)起域名解析請求,獲取 www.fasionchan.com 對應(yīng)的 IP 地址,如圖示步驟①;
- DNS 服務(wù)器找到域名對應(yīng)的 IP ,然后向瀏覽器回復(fù)應(yīng)答,如圖示步驟②;
- 瀏覽器拿到 IP 地址后,即可向 www.fasionchan.com 所在的 Web 服務(wù)器發(fā)起請求,如圖示步驟③;
這就是域名系統(tǒng)的基本工作原理,它看似簡單,但還有很多細(xì)節(jié)等著我們進(jìn)一步探索。























