最近學習JavaWeb時發現URL與URI這兩個縮寫,於是感到很困惑,不知道這兩個名字很像的縮寫表示什么含義,於是我上網搜了一下,總結如下:
一、關於URL
1) URL定義:
在WWW上,每一信息資源都有統一的且在網上唯一的地址,該地址就叫URL(Uniform Resource Locator,統一資源定位符),它是WWW的統一資源定位標志,就是指網絡地址。
簡單來說就是你打開一個瀏覽器,地址欄上顯示的網址,例如:
2) URL格式:
URL由三部分組成:資源類型、存放資源的主機域名、資源文件名,也可認為由4部分組成:協議、主機、端口、路徑。
URL的一般語法格式為:(帶方括號[]的為可選項):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
例如http://www.baidu.com:80/
a)protocol(協議)
指定使用的傳輸協議,下表列出 protocol 屬性的有效方案名稱。 最常用的是http協議,它也是目前WWW中應用最廣的協議。常見協議如下:
file 資源是本地計算機上的文件。格式file:///,注意后邊應是三個斜杠。
ftp 通過 FTP訪問資源。格式 FTP://
gopher 通過 Gopher 協議訪問該資源。
http 通過 HTTP 訪問該資源。 格式 HTTP://
https 通過安全的 HTTPS 訪問該資源。 格式 HTTPS://
mailto 資源為電子郵件地址,通過 SMTP 訪問。 格式 mailto:
MMS 通過 支持MMS(流媒體)協議的播放該資源。(代表軟件:Windows Media Player)格式 MMS://
ed2k 通過 支持ed2k(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:電驢) 格式 ed2k://
Flashget 通過 支持Flashget:(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:快車) 格式 Flashget://
thunder 通過 支持thunder(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:迅雷) 格式 thunder://
news 通過 NNTP 訪問該資源。
b)hostname(主機名)
是指存放資源的服務器的域名系統(DNS) 主機名或 IP 地址。有時,在主機名前也可以包含連接到服務器所需的用戶名和密碼(格式:username:password@hostname)
c)port(端口號)
整數,可選,省略時使用方案的默認端口,各種傳輸協議都有默認的端口號,如http的默認端口為80。如果輸入時省略,則使用默認端口號。有時候出於安全或其他考慮,可以在服務器上對端口進行重定義,即采用非標准端口號,此時,URL中就不能省略端口號這一項。
d)path(路徑)
由零或多個“/”符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。
e)parameters(參數)
這是用於指定特殊參數的可選項。
f)query(查詢)
可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技術制作的網頁)
傳遞參數,可有多個參數,用“&”符號隔開,每個參數的名和值用“=”符號隔開。
g)fragment(信息片斷)
字符串,用於指定網絡資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。
二、關於URI
1)URI定義
在電腦術語中,
統一資源標識符(Uniform Resource Identifier,URI)是一個用於標識某一互聯網資源名稱的字符串。 該種標識允許用戶對任何(包括本地和互聯網)的資源通過特定的協議進行交互操作。URI由包括確定語法和相關協議的方案所定義。
2)URI格式
URI格式由URI協議名(例如HTTP、FTP、mailto、file),一個冒號,和協議對應的內容所構成。特定的協議定義了協議內容的語法和語義,而所有的協議都必須遵循一定的URI文法通用規則,亦即為某些專門目的保留部分特殊字符。URI文法同時也就各種原因對協議內容加以其他的限制,例如,保證各種分層協議之間的協同性。百分號編碼也為URI提供附加信息。
URL的格式由下列三部分組成:,第一部分是協議(或稱為服務方式);第二部分是存有該資源的主機IP地址(有時也包括端口號);第三部分是主機資源的具體地址。
具體URI的格式如下:
[協議名]://[用戶名]:[密碼]@[服務器地址]:[服務器端口號]/[路徑]?[查詢字符串]#[片段ID]
三、二者的區別和聯系
URL是一種URI,它標識一個互聯網資源,並指定對其進行操作或獲取該資源的方法。可能通過對主要訪問手段的描述,也可能通過網絡“位置”進行標識。URI可被視為定位符(URL),名稱(URN)或兩者兼備。統一資源名(URN)如同一個人的名稱,而統一資源定位符(URL)代表一個人的住址。換言之,URN定義某事物的身份,而URL提供查找該事物的方法。URN僅用於命名,而不指定地址。