最近實習在維護前輩的代碼的時候以及看書的時候看到須要獲取連接的地方,會出現Uri這個詞。網上一查才知道原來連接命名居然有3種,而本身居然一直只知道URL,真是孤陋寡聞。因此,今天寫下這篇博客記錄一下。html
首先,什麼是URi呢?URi,全稱爲uniform resource identifier,統一資源標識符,用來惟一的標識一個資源。java
Web上可用的每種資源-HTML文檔、圖像、視頻片斷、程序等都由一個通用資源標識符(即URI)進行定位。瀏覽器
URi通常由三部分組成:
1.訪問資源的命名機制
2.存放資源的主機名
3.資源自身的名稱,由路徑表示服務器
例子:http://www.dodomonster.com/ht...app
這個URi是這樣的:這是一個經過HTTP協議訪問的資源,位於www.dodomonster.com上,經過路徑"/html/html4"訪問。框架
有的URi指向一個資源的內部。這種URi以"#"結束,並跟着一個anchor標識符(稱爲片斷標識符)。例如,下面是一個指向section_2的URi:http://somesite.com/html/top....dom
URi 有絕對和相對之分,絕對的URi 指以scheme(後面跟着冒號)開頭的URi。前面提到的http://www.cnn.com就是絕對的URi的一個例子,其它的例子還有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你能夠把絕對的URi看做是以某種方式引用某種資源,而這種方式對標識符出現的環境沒有依賴。若是使用文件系統做類比,絕對的URi相似於從根目錄開始的某個文件的徑。ide
相對URi 不包含任何命名規範信息。它的路徑一般指同一臺機器上的資源。相對URi可能含有相對路徑(如,"..."表示上一層路徑),還可能包含片斷標識符。爲了說明相對URi,此處舉一個例子:http://www.dodomonster.com/su...工具
下面的連接中使用了相對URi:suppliers
它擴展成徹底的URi就是"http://www.dodomonster.com/suppliers.htm"
下面是一個圖形的相對URi:<img src="../icons/logo.png" alt="logo">
它擴展成徹底的URi就是"http://www.dodomonster.com/icons/logo.png"url
與絕對的URi 不一樣的,相對的URi 不是以scheme(後面跟着冒號)開始的URi。 它的一個例子是articles/articles.html。你能夠把相對的URI看做是以某種方式引用某種資源,而這種方式依賴於標識符出現的環境。若是用文件系統做類比,相對的URi 相似於從當前目錄開始的文件路徑。
在HTML中,URi被用來:
1.連接到另外一個文檔或資源
2.連接到一個外部樣式表或腳本
3.在頁內包含圖形、對象或applet
4.簡歷圖像映射
5.提交一個表單
6.創建一個框架文檔
7.引用一個外部參考
8.指向一個描述文檔的metadata
URL是uniform resource locator,統一資源定位器,它是一種具體的URi,即URL能夠用來標識一個資源,並且還指明瞭如何locate這個資源。通俗地說,URL是Internet上用來描述資源的字符串,主要用在各類www客戶端和服務器程序是,特別是著名的Mosaic。採用URL能夠用一種統一的格式來描述各類信息資源,包括文件、服務器的地址和目錄等。
URL的第一個部分http://表示要訪問的文件的類型。在網上,這幾乎老是使用http(超文本傳輸協議,hypertext transfer protocol-用來轉換網頁的協議);有時也使用ftp(文件傳輸協議,file transfer protocol-用來傳輸軟件和大文件;telnet(遠程登陸),主要用於遠程交談以及文件調用等,意思是瀏覽器正在閱讀本地盤外的一個文件而不是一個遠程計算機。
1.Internet資源類型(schema):指出www客戶程序用來C做的工具。如"http://"表示www服務器,"ftp://"表示ftp服務器,"gopher://"表示Gopher服務器,而"new:"表示Newgroup新聞組。必需的。
2.服務器地址(host):指出www網頁所在的服務器域名。必需的。
3.端口(port):有時(並不是老是這樣),對某些資源的訪問來講,需給出相應的服務器提供端口。可選的。
4.路徑(path):指明服務器上某資源的位置。與端口同樣,路徑並不是老是須要的。可選的。
URL地址格式排列爲:schema://host:port/path,如:http://www.maogoo.com/bbs
客戶程序首先看到http(超文本協議),便知道處理的是HTML連接。接下來的wwww.maogoo.com是站點地址,最後是目錄/bbs。
必須注意:www上的服務器都是區分大小寫的,因此千萬要注意正確的URL大小寫表達形式。
URN,uniform resource name,統一資源命名,是經過名字來標識資源,好比mailto:java-net@java.sun.com
URN是URL的一種更新形式,統一資源名稱(URN, Uniform Resource Name)不依賴於位置,而且有可能減小失效鏈接的個數。可是其流行還需假以時日,由於它須要更精密軟件的支持。
URi:Uniform Resource Identifier,統一資源標識符; URL:Uniform Resource Locator,統一資源定位符; URN:Uniform Resource Name,統一資源名稱。
其中,URL,URN是URi的子集。
也就是說,URi 是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URi。
Web上地址的基本形式是URi,它表明統一資源標識符。有兩種形式: URL:目前URi 的最廣泛形式就是無處不在的URL或統一資源定位器。 URN:URL的一種更新形式,統一資源名稱(URN, Uniform Resource Name)不依賴於位置,而且有可能減小失效鏈接的個數。可是其流行還需假以時日,由於它須要更精密軟件的支持。 URi:以某種統一的(標準化的)方式標識資源的簡單字符串。