URI (Uniform Resource Identifier)
采用一種特定語(yǔ)法標(biāo)識(shí)一個(gè)資源的字符串
格式:
模式:模式特定部分(模式特定部分的語(yǔ)法取決于所用的模式)
模式包括:
由小寫(xiě)字母挽霉、數(shù)字和加號(hào)非凌、點(diǎn)及連號(hào)符組成
data 鏈接中直接包含的Base64編碼數(shù)據(jù)
file 本地磁盤(pán)的文件
ftp FTP服務(wù)器
http 使用超文本傳輸協(xié)議的國(guó)際互聯(lián)網(wǎng)服務(wù)器
mailto 電子郵件地址
magnet 可以通過(guò)對(duì)等網(wǎng)絡(luò)下載的資源
telnet 與基于Telnet的服務(wù)連接
模式特定部分包括:
//authority/path?query ? (//授權(quán)機(jī)構(gòu)/路徑?查詢(xún)字符串)?
由ASCII字母數(shù)字符號(hào)組成楚堤,還可使用標(biāo)點(diǎn)符號(hào)-、_族操、·锐峭、!、~
定界符(/驾讲、蚊伞?、&吮铭、=)可以有其預(yù)定義用途
所有其他字符及內(nèi)容中需用到的定界符也應(yīng)用%轉(zhuǎn)義(空格%20 /%2F)
authority:負(fù)責(zé)解析該URI其余部分的授權(quán)機(jī)構(gòu) 授權(quán)機(jī)構(gòu)是Internet主機(jī)时迫,還可提供可選的用戶(hù)名和端口 如:ftp://mp3:mp3@ci43198-a.ashvill.nc.home.com:33/VanHalen-Jump.mp3
path:授權(quán)機(jī)構(gòu)用來(lái)確定所標(biāo)識(shí)資源的字符串
URL 最常見(jiàn)的URI
兩者區(qū)別:URI表示資源是什么,URL表示資源的具體位置谓晌,URI是URL的抽象掠拳。Java中URL對(duì)象對(duì)應(yīng)網(wǎng)絡(luò)獲取的應(yīng)用層協(xié)議的一個(gè)表示,而URI對(duì)象純粹用于解析和處理字符串纸肉。
絕對(duì)URL
protocol://userInfo@host:port/path?query#fragment
host 提供所需資源服務(wù)器的名字(主機(jī)/服務(wù)器IP地址)
userInfo 可選溺欧,服務(wù)器登錄信息
port 可選,服務(wù)在其默認(rèn)端口運(yùn)行柏肪,無(wú)需此部分
path 指定服務(wù)器上的一個(gè)特定目錄 文件系統(tǒng)姐刁,路徑相對(duì)于服務(wù)器的文檔根目錄,向公眾開(kāi)放的服務(wù)器不會(huì)將其整個(gè)文件系統(tǒng)展示給客戶(hù)端预吆,而只是展示指定目錄中的內(nèi)容
query 向服務(wù)器提供附加參數(shù)龙填,一般只在http URL中使用,其中包含表單數(shù)據(jù)拐叉,作為輸入提供給服務(wù)端的運(yùn)行程序
fragment 指向遠(yuǎn)程資源的某個(gè)特定部分 HTML 錨 XML XPointer ? 段 ?ref ? ? ? ? 片段標(biāo)識(shí)符在HTML文檔中用id屬性創(chuàng)建
包含片段標(biāo)識(shí)符的是URL引用岩遗,不是URL
相對(duì)URL 繼承了父文檔部分信息的URL
在相對(duì)URL中,缺少的各部分都與所在文檔的URL中對(duì)應(yīng)的部分相同
例如瀏覽http://www.ibiblio.org/java/faq/javatutoial.html時(shí)
若無(wú)"/"開(kāi)頭 點(diǎn)擊鏈接<a href="javafaq.html">
相當(dāng)于http://www.ibiblio.org/java/faq/javafaq.html
若以"/"開(kāi)頭 如<a href="/projects/ipv61">
則相當(dāng)于http://www.ibiblio.org/projects/ipv61
相對(duì)URL允許用多種協(xié)議來(lái)提供一個(gè)文檔樹(shù)凤瘦,且相對(duì)URL允許將整個(gè)文檔樹(shù)從一個(gè)網(wǎng)站移動(dòng)或復(fù)制到另一個(gè)網(wǎng)站宿礁,而不會(huì)破壞所有的內(nèi)部連接。