官术网_书友最值得收藏!

1.1 URI和URL

1.1.1 URI和URL簡介

統一資源標識符(Uniform Resource Identifier,URI),允許用戶對網絡中的資源通過特定的協議進行交互操作。RFC2396文檔對Uniform Resource Identifier各部分的定義如下。

Uniform:規定統一的語法格式,以方便處理多種不同類型的資源,而無須根據上下文環境來識別資源類型。

Resource:可標識的任何資源。資源不僅可以為單一對象,也可以為多個對象的集合體。

Identifier:表示可標識的對象,也稱為標識符。

在一般情況下,URI為由某個協議方案表示的資源的定位標識符。協議方案是指訪問資源時所使用的協議類型名稱。HTTP就是協議方案的一種,除此之外,還有FTP、file、TELNET等30種標準URI協議方案。協議方案由互聯網號碼分配局(IANA)管理頒布。URI使用字符串標識某一互聯網資源,常用的URL作為URI的子集,表示某一互聯網資源的地點。

URI的通用語法由5個組件組成:

其中,authority組件可以由以下3個組件組成:

在authority中,userinfo作為登錄信息,通常形式為指定用戶名和密碼,當從服務器獲取資源時作為身份認證憑證使用。userinfo為可選項。

服務器地址host在使用絕對路徑URI時需指定訪問的服務器地址,地址可以為被DNS解析的域名,如example.com,或者192.168.1.1的IPv4地址及用方括號括起來的IPv6地址[0:0:0:0:0:0:0:1]。

port為服務器連接的網絡端口號,作為可選項,如果不指定,則自動使用默認的端口號。

在URI語法中,scheme為協議方案名,在使用HTTPS或HTTP等協議方案名時不區分大小寫,最后一個符號為冒號“:”。協議方案名也可使用javascript:、data:指定腳本程序或數據。

path為帶層次的文件路徑,指定服務器上的文件路徑,以訪問特定的資源。

query為查詢字符串,針對指定路徑的文件資源,可使用查詢字符串傳入任意查詢參數。

fragment為片段標識符,通常標記已獲取資源的子資源,為可選項。

RFC3986文檔列舉了幾種URI示例:

在以上URI示例中,ldap://[2001:db8::7]/c=GB?objectClass?one的schema為ldap,authority為//[2001:db8::7],path為/c=GB,query為?objectClass?one;https://daisy@example.com:123的schema為https,authority為//daisy@example.com:123,其中userinfo為daisy,host為example.com,port為123。

統一資源定位器(UniformResourceLocators,URL)作為URI的一種,如同網絡的門牌,標識了一個互聯網資源的“住址”,如http://www.example.com表示通過HTTP協議從主機名為www.example.com的主機上獲取首頁資源。

URL的語法定義與URI一致:

以https://example.com:80/foo/baz?title=router為例,其中https表示加密的超文本傳輸協議,example.com為服務器的地址,80為服務器上的端口號,/foo/baz為資源路徑,?title=router為路徑的查詢,以“?”開頭,各個參數以“&”分隔,以等號“=”分開參數名稱與數據。

如無特別說明,本書以URL作為網絡資源地址的描述。

主站蜘蛛池模板: 巴彦淖尔市| 容城县| 忻州市| 和龙市| 宝应县| 繁昌县| 银川市| 定陶县| 军事| 临桂县| 辽阳市| 五原县| 诏安县| 梁平县| 阿拉善盟| 昂仁县| 夏邑县| 军事| 台安县| 辉县市| 名山县| 灵寿县| 南召县| 阳西县| 天水市| 鸡泽县| 如东县| 孝昌县| 合山市| 密山市| 平度市| 云梦县| 郧西县| 洪湖市| 建德市| 延庆县| 衡水市| 繁峙县| 宜君县| 平利县| 台江县|