URI 如何包含 URN 和 URL?

Posted

技术标签:

【中文标题】URI 如何包含 URN 和 URL?【英文标题】:How can a URI contain a URN as well as a URL? 【发布时间】:2012-01-26 05:30:24 【问题描述】:

是否有任何同时包含 URN 和 URL 的 URI 示例?

https://www.rfc-editor.org/rfc/rfc3986#section-1.1.3

URI 可以进一步分类为定位符、名称、或两者

那么 URI 方案是什么? "urn:" 还是特定于 URL 的方案?

或者我读错了,这是否意味着 URL 可以是 URN(反之亦然),例如URI 既可以用作 URN,也可以用作 URL。

【问题讨论】:

【参考方案1】:

阅读该 RFC 的其余部分:

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

不必将单个方案归类为仅一个方案 “名称”或“定位器”。来自任何给定方案的 URI 实例可以 具有名称或定位符或两者兼有的特征,通常 取决于在任务中的坚持和细心 命名机构的标识符,而不是任何质量的标识符 方案。未来的规范和相关文件应该 使用通用术语“URI”而不是更严格的术语 “URL”和“URN”[RFC3305]。

也就是说,URI 可以是 URL 或 URN,或者在某些情况下,同时符合两者的条件。 “URL”和“URN”只是在给定上下文中如何解释和使用 URI 的术语。

【讨论】:

我认为这不能回答问题。我是在寻找与 Roland 相同的问题的答案时来到这里的,所以请允许我用我自己的话重述这个问题:URN 被定义为使用 'urn:' 方案,但 'urn:' 不是 URL 方案.那么,一个 URI 怎么可能同时被认为是 URN 和 URL,你能举一个字面的例子吗? @odigity:URN 不是总是 urn:。 RFC3986, section 1.1.3:“‘统一资源名称’(URN) 一词在历史上一直用于指代‘urn’方案 [RFC2141] 下的两个 URI,即使资源不复存在,它们也需要保持全局唯一性和持久性或变得不可用,并指向具有名称属性的任何其他 URI。”【参考方案2】:

我认为常见的 httphttps 方案的 URI 总是既是定位符又是名称。

https://example.com/some_resource?color=green

这是因为他们为资源分配了一个名称,即使该名称可能是神秘的,而不是人类喜欢的名称。此外,由于这些 URI 中的另一个很容易获得相同的资源,因此不能保证这是该资源的唯一名称。

此外,它们都包含权限,因此它们描述了可以找到资源的网络路径,这将使它们成为定位器。

【讨论】:

以上是关于URI 如何包含 URN 和 URL?的主要内容,如果未能解决你的问题,请参考以下文章

URI -URL-URN区别

URI/URL/URN

URI,URL,URN

URI,URL,URN

URL URI URN的区别

URI URL URN 之间的区别