與URI(統一資源標識符)相比,我們更熟悉URL(Uniform Resource Locator,統一資源定位符)。URL正是使用Web瀏覽器等訪問Web頁面時需要輸入的網頁地址。
URI:統一資源標識符
URI是Uniform Resource Identifier的縮寫。RFC2396分別對這3個單詞進行了如下定義。
- Uniform
規定統一的格式可方便處理多種不同類型的資源,而不用根據上下文環境來識別資源指定的訪問方式。另外,加入新增的協議方案也更容易。 - Resource
資源的定義是“可標識的任何東西”。除了文檔文件、圖像或服務等能夠區別于其他類型的,全都可作為資源。另外,資源不僅可以是單一的,也可以是多數的集合體。 - Identifier
表示可標識的對象。也稱為標識符。
綜上所述,URI就是由某個協議方案表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。
URL:統一資源定位符
URI用字符串標識某一互聯網資源,而URL表示資源的地點(互聯網上所處的位置)。可見URL是URI的子集。
URI格式
表示指定的URI,要使用涵蓋全部必要信息的絕地URI、絕地URL以及相對URL。相對URL,是指從瀏覽器中基本URI處指定的URL,形如/image/logo.gif
讓我們先來了解一下絕地URI的格式。
http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1
- 協議方案名:http://
使用http:或https:等協議方案名獲取訪問資源時要指定協議類型。不區分字母大小寫,最后附一個冒號(:)。
也可使用data:或javascript:這類指定數據或腳本程序的方案名。 - 登錄信息(認證):user:pass
指定用戶名和密碼作為從服務器端獲取資源時必要的登錄信息(身份認定)。此項是可選項。 - 服務器地址:www.example.jp
使用絕地URI必須指定待訪問的服務器地址。地址可以是類似hackr.jp這種DNS可解析的名稱,或是192.168.1.1這類IPv4地址名,還可以是用方括號括起來的IPv6地址名。 - 服務器端口號:80
指定服務器連接的網絡端口號。此項也是可選項,若用戶省略則自動使用默認端口號。 - 帶層次的文件路徑:dir/index.htm
指定服務器上的文件路徑來定位特指的資源。這與UNIX系統的文件目錄結構相似。 - 查詢字符串:uid=1
針對已指定的文件路徑內的資源,可以使用查詢字符串傳入任意參數。此項可選。 - 片段標識符:#ch1
使用片段標識符通常可標識出已獲取資源中的子資源(文檔內的某個位置)。但在RFC中并沒有明確規定其使用方法。該項也為可選項。