作者:daixinye
鏈接:https://www.zhihu.com/question/21950864/answer/154309494
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
統(tǒng)一資源標(biāo)志符URI就是在某一規(guī)則下能把一個資源獨(dú)一無二地標(biāo)識出來。
拿人做例子,假設(shè)這個世界上所有人的名字都不能重復(fù),那么名字就是URI的一個實例,通過名字這個字符串就可以標(biāo)識出唯一的一個人。
現(xiàn)實當(dāng)中名字當(dāng)然是會重復(fù)的,所以身份證號才是URI,通過身份證號能讓我們能且僅能確定一個人。
那統(tǒng)一資源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做類比,就可以有:
動物住址協(xié)議://地球/中國/浙江省/杭州市/西湖區(qū)/某大學(xué)/14號宿舍樓/525號寢/張三.人
可以看到,這個字符串同樣標(biāo)識出了唯一的一個人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置來唯一確定一個人的。
在上文我們用身份證號也可以唯一確定一個人。對于這個在杭州的張三,我們也可以用:
身份證號:123456789
來標(biāo)識他。
所以不論是用定位的方式還是用編號的方式,我們都可以唯一確定一個人,都是URl的一種實現(xiàn),而URL就是用定位的方式實現(xiàn)的URI。
回到Web上,假設(shè)所有的Html文檔都有唯一的編號,記作html:xxxxx,xxxxx是一串?dāng)?shù)字,即Html文檔的身份證號碼,這個能唯一標(biāo)識一個Html文檔,那么這個號碼就是一個URI。
而URL則通過描述是哪個主機(jī)上哪個路徑上的文件來唯一確定一個資源,也就是定位的方式來實現(xiàn)的URI。
對于現(xiàn)在網(wǎng)址我更傾向于叫它URL,畢竟它提供了資源的位置信息,如果有一天網(wǎng)址通過號碼來標(biāo)識變成了http://741236985.html,那感覺叫成URI更為合適,不過這樣子的話還得想辦法找到這個資源咯…