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


当前回答

URI类似于URL和URN的超级类,维基百科有一个关于它们的好文章,链接到正确的RFC集。

其他回答

请参见本文,具体而言,

URL 是一个类型的 URI,通过其主要访问机制(例如,其网络“位置”)的代表来识别一个资源,而不是它可能具有某些其他属性。

这不是一个非常清晰的术语,真的。

下面是我的简化:

URN:独一无二的资源名称,即“什么”(例如 urn:issn:1234-5678 ) 这个意思是独一无二的.. 因为在没有两个不同的文件可以有相同的 urn。

URL: “在哪里”找到它(例如 https://google.com/pub?issnid=1234-5678.. 或 ftp://somesite.com/doc8.pdf )

URI:可以是URN或URL,这种混乱的定义是由于W3C和IETF生产的RFC 3986。

URI的定义在过去的几年里改变了,所以对于大多数人来说是有意义的混淆。 但是,你现在可以放松的是,你可以提到 http://somesite.com/某些东西,无论是URL还是URI......你都会是正确的,无论如何(至少是时光,无论如何...)

我一直在想同样的事情,我发现了这个: 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,除了識別資源之外,還提供行動或獲得資源的代表性的手段,描述其主要接入機制或網路「位置」。

URN 格式 : urn:[namespace identifier]:[namespace specific string] urn: and : stand for themselves. 示例: urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 urn:ISSN:0167-6423 urn:isbn:096139210x Amazon 资源名称(ARNs)是一个独特的识别 AWS 资源。