一尘不染

URI、URL 和 URN 之间有什么区别?

javascript

URL s、URI s 和URN s 好像它们是不同的东西,

它们之间有什么可区分的区别?


阅读 228

收藏
2022-01-07

共2个答案

一尘不染

RI 可以进一步分类为定位符、名称或两者。术语“统一资源定位符”(URL) 是指 URI 的子集,除了标识资源外,还通过描述其主要访问机制(例如,其网络“位置”)来提供定位资源的方法。术语“统一资源名称”(URN)在历史上被用来指代“urn”方案[RFC2141]下的两个 URI ,即使资源不复存在或变得不可用,它们也需要保持全局唯一和持久性,并且到具有名称属性的任何其他 URI。

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

2022-01-07
一尘不染

URI标识URL定位;然而,定位符也是标识符,所以每个 URL 也是一个 URI,但有些 URI 不是 URL。

例子

  • Roger Pate

这是我的名字,它是一个标识符。它就像一个 URI,但不能是一个 URL,因为它没有告诉你我的位置或如何联系我。在这种情况下,它也碰巧仅在美国就识别了至少 5 个其他人。

  • 4914 West Bay Street, Nassau, Bahamas

这是一个定位器,它是该物理位置的标识符。它既像 URL 又像 URI(因为所有 URL 都是 URI),并且还间接地将我标识为“居民…”。在这种情况下,它唯一地标识了我,但如果我有室友,情况就会改变。

我说“喜欢”是因为这些示例不遵循所需的语法。

来自维基百科

在计算中,统一资源定位符 (URL) 是统一资源标识符 (URI) 的一个子集,它指定了已识别资源的可用位置以及检索它的机制。在流行的用法和许多技术文档和口头讨论中,它经常被错误地用作 URI 的同义词,...... [强调我的]

由于这种常见的混淆,许多产品和文档错误地使用了一个术语而不是另一个,指定了自己的区别,或将它们用作同义词。

URN

我的名字,Roger Pate,可能就像一个URN(统一资源名称),但它们的规范要严格得多,并且旨在在空间和时间上都是独一无二的。

因为我目前与其他人共享这个名称,所以它不是全球唯一的,也不适合作为 URN。然而,即使没有其他家族使用这个名字,我也是以我祖父的名字命名的,所以它在时间上仍然不是唯一的。即使事实并非如此,以我的名字命名我的后代的可能性使得它不适合作为 URN。

在这种严格的唯一性约束中,URN 与 URL 不同,即使它们都共享 URI 的语法。

2022-01-07