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


当前回答

首先,把你的头脑脱离混乱,把它简单,你会明白。

URI => 统一资源识别器 识别一个完整的资源地址 i-e 位置,名称或两者。

URL => Uniform Resource Locator 指定资源的位置。

URN => 统一资源名称 识别资源名称

例子

我们有一个地址 https://www.google.com/folder/page.html 在哪里,

URI(统一资源识别器) => https://www.google.com/folder/page.html

URL(Uniform Resource Locator) => https://www.google.com/

URN(统一资源名称) => /folder/page.html

URI => (URL + URN) 或 URL 仅或 URN 仅

其他回答

根據定義 URL 是 URI 的子集 [RFC2396]. URI 包含 URN 和 URL. 兩個 URI 和 URL 都有自己的特定的合成,這給他們的狀態是 URI 或 URL. URN 是為了獨特地識別一個資源,而 URL 是為了找到一個資源。

作为网页开发人员和程序员,我们将几乎总是关心URL,因此URI. 现在一个URL是具体定义的所有部分图表:图表特定的部分,如 https://stackoverflow.com/问答. 这是一个URL,也是一个URI. 现在考虑一个相对链接嵌入到页面,如../index.html. 这不再是一个URL的定义。

正如我所理解的那样,URI是某事的描述,按照接受的格式,可以定义某事或其位置的独特名称(识别)。

有两个基本子组:

URL,定义位置(特别是试图查看网页的浏览器)和URN,定义某事的独特名称。

我倾向于认为URN类似于GUID,它们只是一个标准化的方法来为事物提供独特的名称,就像在使用公司名称的名称空间声明中一样,它并不像在某个服务器上坐着的资源在某个地方相匹配于该文本线,它只是独特地识别某些东西。

我也倾向于完全避免URI的术语,并讨论事物只有在URL或URN的意义上,因为它会导致如此多的混乱。我们应该真正试图回答问题的人不是那么多的语法,但如何识别当遇到的术语是否有任何实际的差异在他们,这将改变对一个编程情况的方法。

如果我离开基地,请告诉我!

URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL 是 URI 的子组(也包含 URN)。

基本上,一个 URI 是一个通用识别器,在那里一个 URL 指定一个位置,而一个 URN 指定一个名字。

URI 源于需要识别网络上的资源,以及其他互联网资源,如电子邮箱,以统一和一致的方式,因此,可以引入一个新的类型的 widget: URI 识别 widget 资源或使用 tel: URI 有网链接会导致电话通话进行,当被召唤时。

例如,URI:中:0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com 是一个 URN 识别在其“邮件 ID”字段中包含的电子邮件。

例子

罗杰·帕特

这是我的名字,这是一个识别器,它就像一个URI,但不能是一个URL,因为它告诉你什么关于我的位置或如何联系我。

民间混乱

从维基百科:

乌尔纳

我的名字,罗杰·帕特,可能像一个URN(统一资源名称),除此之外,这些是更有规律的,旨在在在空间和时间上独一无二。

但是,即使没有其他家庭使用这个名字,我被命名为我的祖父,所以它仍然不会是独一无二的时间。

在这种严格的独特性限制中,URN与URL不同,尽管它们都分享了URI的合成。