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


当前回答

一个 URI 通过位置或名称识别一个资源,或者两者。 更常见的是,我们大多数人使用定义一个资源的位置的 URI. 事实上,一个 URI 可以通过名称和位置识别一个资源,在我看来导致了很多混乱。

URL 是 URI 的专业化,它定义了一个特定的资源的网络位置. 与 URN 不同,URL 定义了资源可以获得的方式. 我们每天使用 URL 以 http://stackoverflow.com 等的形式,但一个 URL 不必是一个 HTTP URL,它可以是 ftp://example.com 等。

其他回答

原来,URI计划分为URL(地址)和URN(名称),但然后有一个URL和URI之间很少的差异,而HTTP URI被用作名称空间,尽管它们实际上没有找到任何资源。

从 RFC 3986:

“Uniform Resource Locator”(URL)是指URI的子组,除了识别资源之外,它还提供了通过描述其主要访问机制(例如,其网络的“位置”)来定位资源的手段。

因此,所有URL都是URI,所有URL都是URI,但URL和URL都是不同的,所以你不能说所有URL都是URL。

如果你还没有阅读罗杰·帕特的答案,我会建议你这样做。

我喜欢在思考URI时使用的另一个例子是XML文件的xmlns属性:

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

在这种情况下,com.mycompany.mynode 将是一个独特识别“myPrefix”名称空间的 URI 对所有在我的 XML 文档中使用的元素。

易于解释:

假设下列

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的子组,而不是相反。

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

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