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


当前回答

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

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

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

其他回答

从 RFC 3986:

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

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

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

下面是我的简化:

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......你都会是正确的,无论如何(至少是时光,无论如何...)

根據定義 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:isbn:0-486-27557-4. 这将是一个 URI,但更具体的是一个 URN* 因为它命名文本。

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

* 统一资源名称

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

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

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

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