URI (Uniform Resource Identifier)
采用一種特定語法標識一個資源的字符串
格式:
模式:模式特定部分(模式特定部分的語法取決于所用的模式)
模式包括:
由小寫字母、數字和加號、點及連號符組成
data 鏈接中直接包含的Base64編碼數據
file 本地磁盤的文件
ftp FTP服務器
http 使用超文本傳輸協議的國際互聯網服務器
mailto 電子郵件地址
magnet 可以通過對等網絡下載的資源
telnet 與基于Telnet的服務連接
模式特定部分包括:
//authority/path?query ? (//授權機構/路徑?查詢字符串)?
由ASCII字母數字符號組成,還可使用標點符號-、_、·、!、~
定界符(/、?、&、=)可以有其預定義用途
所有其他字符及內容中需用到的定界符也應用%轉義(空格%20 /%2F)
authority:負責解析該URI其余部分的授權機構 授權機構是Internet主機,還可提供可選的用戶名和端口 如:ftp://mp3:mp3@ci43198-a.ashvill.nc.home.com:33/VanHalen-Jump.mp3
path:授權機構用來確定所標識資源的字符串
URL 最常見的URI
兩者區別:URI表示資源是什么,URL表示資源的具體位置,URI是URL的抽象。Java中URL對象對應網絡獲取的應用層協議的一個表示,而URI對象純粹用于解析和處理字符串。
絕對URL
protocol://userInfo@host:port/path?query#fragment
host 提供所需資源服務器的名字(主機/服務器IP地址)
userInfo 可選,服務器登錄信息
port 可選,服務在其默認端口運行,無需此部分
path 指定服務器上的一個特定目錄 文件系統,路徑相對于服務器的文檔根目錄,向公眾開放的服務器不會將其整個文件系統展示給客戶端,而只是展示指定目錄中的內容
query 向服務器提供附加參數,一般只在http URL中使用,其中包含表單數據,作為輸入提供給服務端的運行程序
fragment 指向遠程資源的某個特定部分 HTML 錨 XML XPointer ? 段 ?ref ? ? ? ? 片段標識符在HTML文檔中用id屬性創建
包含片段標識符的是URL引用,不是URL
相對URL 繼承了父文檔部分信息的URL
在相對URL中,缺少的各部分都與所在文檔的URL中對應的部分相同
例如瀏覽http://www.ibiblio.org/java/faq/javatutoial.html時
若無"/"開頭 點擊鏈接<a href="javafaq.html">
相當于http://www.ibiblio.org/java/faq/javafaq.html
若以"/"開頭 如<a href="/projects/ipv61">
則相當于http://www.ibiblio.org/projects/ipv61
相對URL允許用多種協議來提供一個文檔樹,且相對URL允許將整個文檔樹從一個網站移動或復制到另一個網站,而不會破壞所有的內部連接。