1. 程式人生 > >Web基礎-Uri跟Url的區別

Web基礎-Uri跟Url的區別

    初學java,最近被一個概念搞得頭暈腦脹,就是url和uri的概念和區別,網上查了一大通,發現各種回答眼花繚亂,有百科直接貼上的,有胡說八道的,有故意繞來繞去的,我估計他自己都沒搞懂,按照馬士兵的說法就是,通通都是一些冠冕堂皇的套話,說了等於沒說,本來就是一個很抽象的概念,還用很抽象的的方式來答覆,這不是讓人虐心嗎?經過我潛心研究了一番,把他們的區別分享給大家,我相信很多新手都不會一下子明白這兩個概念的,老鳥勿噴!

    首先給大家舉個例子,有一家公司的總經理,某天,給了我一張名片,上面寫了他的頭銜,北京XXX公司總經理 張三,還有他的辦公室地址,北京市海淀區長安街35號北京XXX公司總經理辦公室,那麼,我以後給我的朋友吹牛,我認識北京XXX公司的總經理張三,我的朋友都知道北京XXX公司的總經理是一個叫張三的人,那麼,這個頭銜就和張三對應起來了,只要一說到這個頭銜,大家都知道說的是張三,反應到網路世界,這個頭銜就叫做URI,只要你給我一個URI,我就知道它代表了什麼,比如,

http://www.sina.com.cn代表了新浪網,[email protected]代表了某一個人的qq郵箱,你的qq號也是一個URI(騰訊伺服器內可以識別就是你的QQ賬戶),URI就是網路資源的頭銜,通過URI標記可以把網路世界裡面的每一個事物都加以標記並區分開來。

    好的,現在出現了一個問題,你現在知道北京XXX公司總經理是張三,“北京XXX公司總經理”就是張三這個人的URI,可是,我讓你親自去和張三見一面,你做得到嗎?你肯定做不到,因為你不知道他的地址,雖然你有他的URI頭銜,但是除此以外,你對他具體的情況一無所知,於是你要定位到他,你就必須得到他的辦公室地址,通過“北京市海淀區長安街35號北京XXX公司總經理辦公室”這個地址,你就找到了張三。反應到網路世界,網路世界裡面的每一個資源不光有自己的頭銜,還要能夠被人訪問,被人找到,所以,網路地址是必須的,否則,這個網路資源的存在沒有任何意義,這個地址就叫做URL。

    通過上面的描述,可以發現,URI強調的是給資源標記命名,URL強調的是給資源定位,但是你會發現,URL顯然比URI包含資訊更多,我通過URL也可以知道張三是總經理,並且我還知道了他的地址,所以大多數情況下大家覺得給一個網路資源分別命名和給出地址太麻煩,乾脆就用地址既當地址用,又當標記名用,所以,URL也充當了WWW全球資訊網裡面URI的角色,但是他比URI多了一層意義,我不光知道你叫什麼,我還知道你在哪裡。我們在瀏覽器輸入的都是URL,因為我們輸入的目的是為了找到某一個資源,當然你輸入的是URI也是沒錯的,因為URL也是URI。

    總結:URI標記了一個網路資源,僅此而已;  URL標記了一個WWW網際網路資源(用地址標記),並給出了他的訪問地址。(URI是Uniform Resource Identifier,表示是一個資源; URL是Uniform Resource Locator,表示是一個地址,光看英文縮寫確實難懂)

這裡寫圖片描述
URL是URI的子集,所有的URL都是URI,但不是每個URI都是URL,還有可能是URN

更深瞭解