一張圖帶你了解域名到IP地址之間的解析(域名解析IP地址)

DNS(Domain Name System)服務是和HTTP協議一樣位于應用層的協議。它提供域名到IP地址之間的解析服務。計算機既可以被賦予IP地址,也可以被賦予主機名和域名。比如www.hackr.jp。
用戶通常使用主機名或域名來訪問對方的計算機,而不是直接通過IP地址訪問。因為與IP地址的一組純數字相比,用字母配合數字的表示形式來指定計算機名更符合人類的記憶習慣。
但要讓計算機去理解名稱,相對而言就變得困難了。因為計算機更擅長處理一長串數字。
為了解決上述的問題,DNS服務應運而生。DNS協議提供通過域名查找IP地址,或逆向從IP地址反查域名的服務。
學習了和HTTP協議密不可分的TCP/IP協議族中的各種協議后,我們再通過這張圖來了解下IP協議、TCP協議和DNS服務在使用HTTP協議的通信過程中各自發揮了哪些作用。
URI和URL
與URI(統一資源標識符)相比,我們更熟悉URL(Uniform Resource Locator,統一資源定位符)。URL正是使用Web瀏覽器等訪問Web頁面時需要輸入的網頁地址。比如,下圖的http://hackr.jp/就是URL。
統一資源標識符
URI是Uniform Resource Identifier的縮寫。RFC2396分別對這3個單詞進行了如下定義。
采用HTTP協議時,協議方案就是http。除此之外,還有ftp、mailto、telnet、file等。標準的URI協議方案有30種左右,由隸屬于國際互聯網資源管理的非營利社團ICANN(Internet Corporation for Assigned Names and Numbers,互聯網名稱與數字地址分配機構)的IANA(Internet Assigned Numbers Authority,互聯網號碼分配局)管理頒布。
IANA - Uniform Resource Identifier (URI) SCHEMES(統一資源標識符方案)
URI用字符串標識某一互聯網資源,而URL表示資源的地點(互聯網上所處的位置)??梢奤RL是URI的子集?!癛FC3986:統一資源標識符(URI)通用語法”中列舉了幾種URI例子,如下所示。
URI格式
表示指定的URI,要使用涵蓋全部必要信息的絕對URI、絕對URL以及相對URL。相對URL,是指從瀏覽器中基本URI處指定的URL,形如 /image/logo.gif。讓我們先來了解一下絕對URI的格式。
使用http:或https:等協議方案名獲取訪問資源時要指定協議類型。不區分字母大小寫,最后附一個冒號(:)。也可使用data:或javascript:這類指定數據或腳本程序的方案名。
并不是所有的應用程序都符合RFC有一些用來制定HTTP協議技術標準的文檔,它們被稱為RFC(Request forComments,征求修正意見書)。通常,應用程序會遵照由RFC確定的標準實現。可以說,RFC是互聯網的設計文檔,要是不按照RFC標準執行,就有可能導致無法通信的狀況。比如,有一臺Web服務器內的應用服務沒有遵照RFC的標準實現,那Web瀏覽器就很可能無法訪問這臺服務器了。由于不遵照RFC標準實現就無法進行HTTP協議通信,所以基本上客戶端和服務器端都會以RFC為標準來實現HTTP協議。但也存在某些應用程序因客戶端或服務器端的不同,而未遵照RFC標準,反而將自成一套的“標準”擴展的情況。不按RFC標準來實現,當然也不必勞心費力讓自己的“標準”符合其他所有的客戶端和服務器端。但設想一下,如果這款應用程序的使用者非常多,那會發生什么情況?不難想象,其他的客戶端或服務器端必然都不得不去配合它。實際在互聯網上,已經實現了HTTP協議的一些服務器端和客戶端里就存在上述情況