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