URL、URN、URI區別
既然Web應用程序的文件等資源是放在服務器上,而服務器是因特網(Internet)上的主機,當然必須要有個方法,告訴瀏覽器到哪里取得文件等資源。通常會聽到有人這么說:“你要指定URL”,偶爾會聽到有人說:“你要指定URI”。那么到底什么是URL、URI?甚至你還聽過URN。首先,三個名稱都是縮寫,其全名分別為:
- URL:Uniform Resource Locator
- URN:Uniform Resource Name
- URI:Uniform Resource Identifier
從歷史的角度來看,URL的標准最先出現,早期U代表Universal(萬用),標准化之后代表着Uniform(統一)。正如名稱所指出,URL的主要目的,是一文字方式來說明因特網上的資源如何獲得。一般而言,URL的主要格式為:
<協議>:<特定協議部分>
協議(scheme)指定了以何種方式取得資源。一些協議名的例子有:
- ftp(文件傳輸協議,File Transfer Protocol)
- http(超文本傳輸協議,Hypertext Transfer Protocol)
- mailto(電子郵件)
- file(特定主機文件名)
協議之后跟隨冒號,特定協議部分的格式則為:
//<用戶>:<密碼>@<主機>:<端口號>/<路徑>
舉例來說,若資源放置在HTTP服務器上,如圖1.2所示:
若主機名為 openhome.cc,要以HTTP協議取得 Gossip 目錄中的 index.html文件,端口號 8080,則必須使用以下URL(如圖 1.3所示):
http://openhome.cc:8080/Gossip/index.html
又假設想取得計算機文件系統中 C:\workspace 下的jdbc.pdf 文件,則可以指定如下URL格式:
file://C:/workspace/jdbc.pdf
簡而言之,URL代表資源的地址信息,URN則代表某個資源獨一無二的名稱。舉個例子來說,“JSP&Servlet學習筆記(第2版)”的國家標准書號(International Standard Book Number,ISBN)為 ISBN 978-7-302-28366-9,這就是URN的一個例子。
由於URL或URN的目的,都是用來標識某個資源,后來的標准指定了URI,而URL與URN成為URI的子集。在一些標准機構,如W3C(World Wide Web Consortium)文件中,后來就也多使用URI這個名詞,不過許多人已習慣用URL,所以URL這個名詞仍廣為使用,程序員口語交談也多見使用URL這個舊稱。
如果想對URL、URI 與 URN 的歷史演進與標准發布作更多的了解,可以參考Wikipedia(http://www.wikipedia.org/)的Uniform Resource Identifier: