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


当前回答

简而言之:一个 URI 会识别,一个 URL 会识别和找到。

考虑到莎士比亚的游戏罗密欧和朱丽叶的具体版本,你在你的家庭网络上有一个数字副本。

您可以将文本定义为 urn:isbn:0-486-27557-4. 这将是一个 URI,但更具体的是一个 URN* 因为它命名文本。

您也可以将文本定义为 file://hostname/sharename/RomeoAndJuliet.pdf. 这也将是一个 URI,但更具体的是一个URL,因为它会找到文本。

* 统一资源名称

(请注意,我的例子是从维基百科调整的)

其他回答

简而言之:一个 URI 会识别,一个 URL 会识别和找到。

考虑到莎士比亚的游戏罗密欧和朱丽叶的具体版本,你在你的家庭网络上有一个数字副本。

您可以将文本定义为 urn:isbn:0-486-27557-4. 这将是一个 URI,但更具体的是一个 URN* 因为它命名文本。

您也可以将文本定义为 file://hostname/sharename/RomeoAndJuliet.pdf. 这也将是一个 URI,但更具体的是一个URL,因为它会找到文本。

* 统一资源名称

(请注意,我的例子是从维基百科调整的)

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

有两个基本子组:

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

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

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

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

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 资源。

最好的(技术)总结 imo 是这个一个

统一资源识别器是识别一个抽象或物理资源的字符的紧凑序列. 字符集仅限于US-ASCII 排除一些保留字符. 允许字符集之外的字符可以使用百分比编码来代表。

URL

IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)

关于Semantic Web问题的结论

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

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 仅