URI:統(tǒng)一資源標識符(Uniform Resource Identifiers)
URL:統(tǒng)一資源定位符(Uniform Resource Location)
用一張圖來標識它們之間的關(guān)系:
這里還提到了URN(Uniform Resource Name)。這里暫且不討論赂乐。
借用知乎上的一個解釋來著重解釋URI和URL的區(qū)別和聯(lián)系:
統(tǒng)一資源標志符URI就是在某一規(guī)則下能把一個資源獨一無二地標識出來孤澎。
拿人做例子,假設(shè)這個世界上所有人的名字都不能重復惊楼,那么名字就是URI的一個實例,通過名字這個字符串就可以標識出唯一的一個人。
現(xiàn)實當中名字當然是會重復的瞎领,所以身份證號才是URI锌畸,通過身份證號能讓我們能且僅能確定一個人勇劣。
那統(tǒng)一資源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做類比潭枣,就可以有:
動物住址協(xié)議://地球/中國/浙江省/杭州市/西湖區(qū)/某大學/14號宿舍樓/525號寢/張三.人
可以看到比默,這個字符串同樣標識出了唯一的一個人,起到了URI的作用盆犁,所以URL是URI的子集命咐。URL是以描述人的位置來唯一確定一個人的。所以不論是用定位的方式還是用編號的方式谐岁,我們都可以唯一確定一個人醋奠,都是URI的一種實現(xiàn),而URL就是用定位的方式實現(xiàn)的URI伊佃。
回到Web上窜司,假設(shè)所有的Html文檔都有唯一的編號,記作html:xxxxx航揉,xxxxx是一串數(shù)字塞祈,即Html文檔的身份證號碼,這個能唯一標識一個Html文檔帅涂,那么這個號碼就是一個URI议薪。
而URL則通過描述是哪個主機上哪個路徑上的文件來唯一確定一個資源,也就是定位的方式來實現(xiàn)的URI媳友。
對于現(xiàn)在網(wǎng)址我更傾向于叫它URL斯议,畢竟它提供了資源的位置信息,如果有一天網(wǎng)址通過號碼來標識變成了http://741236985.html醇锚,那感覺叫成URI更為合適哼御,不過這樣子的話還得想辦法找到這個資源咯.
總結(jié):URL和URI的關(guān)系是被包含與包含的關(guān)系,另外,URI側(cè)重于在大環(huán)境中用唯一的編號來標記一個資源艇搀,而URL側(cè)重于用帶有地理位置信息(或者其它有階梯狀分層的形式)的形式來標識一個資源尿扯,特別是當URL用于web的時候,鏈接的格式有比較鮮明的意義焰雕。