作者 謝恩銘,公眾號「程序員聯盟」(微信號:coderhub)。
轉載請注明出處。
原文:http://www.lxweimin.com/p/45a1f31ea9fb
《Web探索之旅》全系列
內容簡介
- 前言
- IPv4 和 IPv6
- 域名
- 總結
- 第三部分第三課預告
1. 前言
上一課 Web探索之旅 | 第三部分第一課:服務器 中,我們說了在 Web 之中,全球各地有無數臺機器,有些充當客戶機,有些作為服務器。
那么這些機器如何找到和辨認彼此呢?難道不會“只是因為在人群中多看了你一眼,再也沒能想起你容顏”嗎?
如果我用我的瀏覽器上網,我怎么知道哪個服務器向我發送此網站呢?
為了解決這個難題,IT 科學家們使用了一個叫做 IP 地址的東西(東西好像有點太難聽了,IP 它根本就不是個東西好嗎...)。
IP 是 Internet Protocol 的縮寫,表示“互聯網協議”。
IP 地址就是用來表示每一臺連接 Web 的機器的,而且是唯一標識。
我們暫時只要了解:大范圍來講,全球每臺電腦都有一個獨一無二的 IP 地址,就好像是它的唯一銘牌。我們可以把“電腦”比作“電話”,那么“IP 地址”就相當于“電話號碼”。
2. IPv4 和 IPv6
IPv4 和 IPv6 是 IP 地址的不同版本,v4 就是第四版(v 是英語 version 的首字母,表示“版本”),那么 v6 就是第六版。
IPv4 的地址長度為 32 位(共有 2^32(2 的 32 次方)個 IP 地址),分為 4 段,每段 8 位,用十進制數字表示,每段數字范圍為 0 ~ 255,段與段之間用句點隔開。例如 159.226.13.1
。
IPv6 的地址長度為 128 位(共有 2^128(2 的 128 次方)個 IP 地址),分為 8 段,每段 16 位,用十進制數字表示,每段數字范圍為 0 ~ 65535,段與段之間用冒號隔開。如果每個 16 位用 16 進制表示,那么例如 1080:0000:0000:0000:0008:0800:200C:417A
。
互聯網當前使用的主要是基于 IPv4 協議的 32 位地址,地址總容量近 43 億個,已經全部分配完畢。而 IPv6 地址采用 128 位標識,數量為 2 的 128 次方,相當于 IPv4 地址空間的 4 次冪。
有人曾形象地比喻:“IPv6 可以讓地球上每一粒沙子都擁有一個 IP 地址。”
我們的課程中還是以 IPv4 的地址值來舉例。
例如我們有以下 IP 地址:
難道我們每次上網,都要在地址欄里輸入這樣的數字才能找到我要的網頁嗎?這樣的話太累了,“臣妾做不到啊”。
那怎么辦呢?于是域名應運而生。
3. 域名
因為直接記每個 IP 地址太難,所以人們想到了用人類易于記憶的名字來代替數字。比如,上面例子中的 205.89.177.26
,其實是曾經 Google 首頁的 IP 地址。所以我們就用一個域名(domain name)來代替:google.com
。
但是我們的服務器其實只認得數字形式的 IP 地址。所以我們需要一個“中間人”,將 google.com
這樣的域名先解析成 205.89.177.26
,然后再找到對應的網頁。
這個中間人就是 DNS,是 Domain Name System 的縮寫,表示“域名系統”,是 Internet 的一項服務。它作為將域名和 IP 地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網。
有了 DNS,我們就可以輕松地在地址欄輸入 google.com
,然后經過 DNS 解析,變為對應的 IP 地址,再由服務器讀取。
DNS 是由域名解析器和域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應 IP 地址,并具有將域名轉換為 IP 地址功能的服務器。其中域名必須對應一個 IP 地址,而 IP 地址不一定有域名。
4. 總結
IP 地址使我們可以找到地球上每臺聯網的電腦。
記住域名比 IP 地址方便,而從域名到 IP 地址的解析是通過 DNS。
5. 第三部分第三課預告
今天的課就到這里,一起加油吧!
我是 謝恩銘,公眾號「程序員聯盟」(微信號:coderhub)運營者,慕課網精英講師 Oscar 老師,終生學習者。
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標桿直跑」