一个 URL、一个 URI 和一个 URN 的区别是什么?


当前回答

对于已经发表的答案,这里有一个Venn的图表来总结理论(从Prateek Joshi的美丽解释):

此分類上一篇

还有一个例子(也来自Prateek的网站):

此分類上一篇

其他回答

我一直在想同样的事情,我发现了这个: http://docs.kohanaphp.com/helpers/url。

您可以看到一个清晰的例子,使用 url::current() 方法. 如果您有此 URL: http://example.com/kohana/index.php/welcome/home.html?query=string 然后使用 url:current() 给您一个 URI,根据文档,是:欢迎/home

维基百科将提供您所需的所有信息。 引用来自 http://en.wikipedia.org/wiki/URI:

URL 是一個 URI,除了識別資源之外,還提供行動或獲得資源的代表性的手段,描述其主要接入機制或網路「位置」。

此分類上一篇

URI、URL、URN

如上图所示,这里有三个不同的组成部分,通常最好在讨论这些问题时去源头,所以这里是由Tim Berners-Lee, et. al.在RFC 3986: Uniform Resource Identifier(URI): Generic Syntax:

统一资源识别器(URI)是识别一个抽象或物理资源的字符的微型序列,URI可以进一步分类为一个位置,一个名称,或两者。

易于解释:

假设下列

URI 是你的名字

URL 是您的地址,您的姓名在订单中与您沟通。

我的名字是 Loyola Loyola 是 URI 我的地址是 TN, Chennai 600001.

TN, Chennai 600 001, Loyola 是 URL

希望你明白,

让我们来看看一个准确的例子。

HTTP://www.google.com/fistpage.html

在上述情况下,您可以使用下面的 http://www.google.com/fistpage.html(URL)联系一个名为 firstpage.html(URI)的页面。

因此,URI是URL的子组,而不是相反。

不要忘记 URNs. URIs 和 URLs 都是 URNs. URLs 有位置:

URI: foo
URL: http://some.domain.com/foo
URL: http://some.domain.com:8080/foo
URL: ftp://some.domain.com/foo

他们都是URN。