URI(Uniform Resource Identifier) 統(tǒng)一資源標(biāo)識(shí)符
URI就像因特網(wǎng)上的郵政地址一樣,在世界范圍內(nèi)唯一標(biāo)識(shí)并定位信息資源。
URL 統(tǒng)一資源定位符
是資源標(biāo)識(shí)符的最常見形式,是URI的一個(gè)子集(另一個(gè)是URN)骂远。URL描述了一臺(tái)特定服務(wù)器上某資源的特定位置。它們可以說(shuō)明如何從一個(gè)精確枷踏、固定的位置獲取資源。
URL遵循的標(biāo)準(zhǔn)格式
- URL的第一部分被稱為方案(scheme),說(shuō)明了訪問(wèn)資源所使用的協(xié)議類型璃哟。如http://
- 第二部分給出了服務(wù)器的因特網(wǎng)地址
- 其余部分制定了Web服務(wù)器上的某個(gè)資源
現(xiàn)在幾乎所有的URI都是URL
URL語(yǔ)法
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<flag>
- 方案:使用的協(xié)議,不區(qū)分大小寫
- 用戶:訪問(wèn)某些資源需要用戶名
- 密碼:用戶對(duì)應(yīng)的密碼 中間用:分割
- 主機(jī):服務(wù)器的主機(jī)名或IP地址
- 端口:服務(wù)器正在監(jiān)聽的端口號(hào)
- 路徑:服務(wù)器資源的本地名喊递,路徑組件的語(yǔ)法是與服務(wù)器和方案有關(guān)
- 參數(shù):某些方案會(huì)用這個(gè)組件來(lái)指定輸入?yún)?shù)随闪。參數(shù)為名/值對(duì)。URL中可以包含多個(gè)參數(shù)字段
- 查詢:傳遞的參數(shù)骚勘,用"?"將其與URL的其余部分分隔開
- 片段:一小片或一部分資源的名字铐伴,這個(gè)字段是在客戶端內(nèi)部使用的,通過(guò)字符"#"與URL其他部分分隔開來(lái)
用戶名和密碼
很多服務(wù)器都要求輸入用戶名和密碼才允許用戶訪問(wèn)資源俏讹。常見的有FTP服務(wù)器当宴。
例如:
ftp://192.168.1.2
ftp://anonymous@192.168.1.2
ftp://anonymous:my_pwd@192.168.1.2
參數(shù)
為了向應(yīng)用程序提供它們所需的輸入?yún)?shù),以便正確地與服務(wù)器進(jìn)行交互泽疆,URL中有一個(gè)參數(shù)組件即供。這個(gè)就是URL中的名值對(duì)列表,由字符";"與其他部分分隔于微。
如:
ftp://192.168.1.2;type=d
http://192.168.1.2/index.html;sale=false/login.html;id=true
查詢字符串
很多資源都可以通過(guò)提問(wèn)題或者查詢來(lái)縮小所請(qǐng)求資源類型的范圍逗嫡。
如:
http://192.168.1.2/login.html?user=zhangsan&password=123456
經(jīng)常使用的http get請(qǐng)求傳遞的參數(shù)就是查詢字符串
片段
有些資源,比如html株依,除了資源級(jí)之外驱证,還可以進(jìn)一步劃分。比如恋腕,對(duì)一個(gè)帶有章節(jié)的大型文本文檔來(lái)說(shuō)抹锄,資源的URL會(huì)指向整個(gè)文檔,但有時(shí)我們希望能夠指定資源中的某些章節(jié)荠藤。
片段組件用來(lái)表示一個(gè)資源內(nèi)部的片段伙单。如一個(gè)特定的圖片或小節(jié)
片段掛在URL的右邊,前面用一個(gè)"#"與其他部分分隔哈肖。
HTTP服務(wù)器通常只處理整個(gè)對(duì)象吻育,而不是對(duì)象的片段,客戶端不能將片段傳給服務(wù)器淤井,瀏覽器從服務(wù)器獲取整個(gè)資源后布疼,會(huì)根據(jù)片段來(lái)顯示部分資源。
URL快捷方式
URL有兩種方式:絕對(duì)URL和相對(duì)URL币狠,相對(duì)URL只是URL的片段或一部分游两。處理URL的程序(如瀏覽器)能夠在相對(duì)和絕對(duì)URL之間進(jìn)行轉(zhuǎn)換。相對(duì)URL有利于資源的遷移漩绵,因?yàn)橄鄬?duì)URL都是相對(duì)于新基礎(chǔ)進(jìn)行解釋的贱案。這樣可以實(shí)現(xiàn)在其他服務(wù)器上提供鏡像內(nèi)容之類的功能。
基礎(chǔ)URL
轉(zhuǎn)換處理的第一步就是找到基礎(chǔ)URL止吐”ψ伲基礎(chǔ)URL是作為相對(duì)URL的參考點(diǎn)使用的。有以下幾種方式:
- 在資源中顯示提供 如html中的<base>標(biāo)簽
- 封裝資源的基礎(chǔ)URL 如果在一個(gè)沒有顯示指定基礎(chǔ)URL的資源中發(fā)現(xiàn)一個(gè)相對(duì)URL祟印,可以將它所屬資源的URL作為基礎(chǔ)
自動(dòng)擴(kuò)展URL
瀏覽器一般都提供自動(dòng)擴(kuò)展URL的功能
主要的擴(kuò)展方式:
- 主機(jī)名擴(kuò)展 如在瀏覽器中輸入 google.com ,瀏覽器會(huì)自動(dòng)擴(kuò)展為http://google.com
- 歷史擴(kuò)展 對(duì)瀏覽器歷史記錄進(jìn)行匹配查詢
URL編碼
使用一種"轉(zhuǎn)義"表示法來(lái)表示各種不安全的字符(保留及受限字符)肴沫。
如:~ 空格 %等
常見的URL方案(協(xié)議)
- http 超文本傳輸協(xié)議 默認(rèn)端口80
- https 加密的http,使用SSL進(jìn)行安全加密 默認(rèn)端口443
- mailto 指向Email地址蕴忆,如mailto:wustrive2008@gmail.com
- ftp 文件傳輸協(xié)議颤芬,用來(lái)從ftp服務(wù)器上傳或下載文件
- rtsp,rtspu 通過(guò)實(shí)時(shí)流傳輸協(xié)議解析音/視頻媒體資源的標(biāo)識(shí)符
- file 從一臺(tái)共享主機(jī)上直接訪問(wèn)文件
- news 用來(lái)訪問(wèn)一些特定的文章或新聞組
- telnet 用戶訪問(wèn)交互式業(yè)務(wù)