鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 分不清URL和URI

分不清URL和URI

看了很多資料還是一頭霧水,都是在說定義,沒有具體實(shí)例
比如 https://www.baidu.com/ 這個地址是URI還是URL還是既是URL也是URI?
可不可以舉些例子說明下:哪些是URL 哪些是URI 哪些是既是URL也是URI?

回答
編輯回答
司令

URI 是統(tǒng)一資源標(biāo)識符,而 URL 是統(tǒng)一資源定位符。

共同點(diǎn):

  • 可以唯一確定一個資源

不同點(diǎn):

  • URI未指明如何去標(biāo)識一個資源
  • URL明確指明以定位的方式標(biāo)識資源

例子

比如當(dāng)前頁面的鏈接為https://segmentfault.com/q/1010000013464694

  • URL為https://segmentfault.com/q/1010000013464694
  • URI為1010000013464694
2017年5月27日 11:02
編輯回答
傻叼

對統(tǒng)一資源定位符(uniform resource locator URL)
統(tǒng)一資源標(biāo)識符(uniform resource identifier URI)
詳細(xì)解答

例如:
https://segmentfault.com/q/1010000013464694/a-1020000013464945/edit
url為:https://segmentfault.com/q/1010000013464694/a-1020000013464945/edit
uri為: /q/1010000013464694/a-1020000013464945/edit

2017年8月3日 13:48
編輯回答
情殺

樓上兩位的答案有點(diǎn)不準(zhǔn)確,這里強(qiáng)調(diào)一下。

URx家族有3個主要成員:URIURL、URN,其中URLURNURI的子集,所以:

一切URLURN必然都是URI。

這也是你看到很多資料上說http://...這種形式的URL也是URI的原因。

下面重點(diǎn)討論URLURI的區(qū)別。

核心區(qū)別:URI用來唯一標(biāo)識一個資源,URL則在此基礎(chǔ)上明確規(guī)定了定位該資源的方法。

這個基本上所有文章里面都會提到,但是真正理解不太容易。簡單來說就是,URL是指定了定位方法的URI。

比如,下面的都是URI

// 一個完整的URI,包括協(xié)議、域名、路徑、資源名等
https://segmentfault.com/q/1010000013464694
// 一個省掉了協(xié)議和域名的URI
/q/1010000013464694
// 一個省略了路徑和資源名的URI
https://www.baidu.com/
// 一個使用相對路徑描述的URI
../a/b/c
// 使用絕對路徑標(biāo)識本地文件的URI
/home/users/me/document/file.txt
……

但是里面只有一部分是URL

// 這個自然是URL
https://segmentfault.com/q/1010000013464694
// 單獨(dú)拿出來不是一個URL,但是對該網(wǎng)站的程序來說它也是一個URL(相對網(wǎng)站進(jìn)行定位)
/q/1010000013464694
// 單獨(dú)拿出來不是一個URL,但是對baidu網(wǎng)站來說它也是一個URL,因?yàn)樗鼤J(rèn)定位到index主頁
https://www.baidu.com/
// 單獨(dú)拿出來不是一個URL,但是對當(dāng)前路徑來說它也是一個URL,因?yàn)橛盟梢远ㄎ坏缴蠈幽夸浿械馁Y源
../a/b/c
// 單獨(dú)拿出來不是一個URL(因?yàn)槿笔f(xié)議部分),但是對本地系統(tǒng)來說它也是一個URL,可以定位到指定文件
/home/users/me/document/file.txt
結(jié)論:很多情況下,一個URI并不能當(dāng)成URL使用,但是如果明確了場景,則很多URI也可以成為URL。所以很多時候并不能肯定地說一個地址是或不是一個URL,而是要看用它能不能定位到目標(biāo)資源。
2017年11月21日 04:39