URI、URL 和 URN 的示例

5

我已经阅读了很多有关URIURLURN的文章,但我不理解实际示例中的区别。

你能举几个URIURL的例子吗?

我认为http://stack.com/first/index.html?submit=yes&action=go#second是URI,而不是URL,你同意吗?

那么http://stack.com/first/index.html就是URL,因为它不太具体,对吗?

enter image description here

这个图片正确吗?


这可能会有帮助:https://dev59.com/mm445IYBdhLWcg3wWI2L - Mayank
2个回答

6

以下是摘自《REST实践》(作者:J.Webber, S.Parastatidis, I.Robinson)的一句话,捕捉了它们之间区别的本质:

URL和URN是URI的特殊形式。

通常被称为URL的URI标识了访问资源的机制。HTTP URIs是URL的例子。

如果URI以urn作为其方案并遵循RFC 2141RFC 2611的要求,则它是URN。URN的目标是为资源提供全局唯一的名称。

顺便说一下,这本书的ISBN是ISBN-13: 978-0596805821。如果您点击Amazon.com上的“为什么ISBN很重要”链接,则会看到工具提示:

这个条形码数字可以帮助您验证书籍的版本和版本是否正确。
这是URN(并且根据定义是URI)在urn:isbn命名空间中的示例,它不假定检索此资源的任何给定机制,但确实标识它。
例如,如果您有一些在线书籍链接,例如PDF格式,则为URL(并且根据定义是URI),并且看起来像这样:
https://www.somewebsite.org/books/RestInPractice.pdf

2
不,这个图像是不正确的。你的两个例子都是URI和URL。
每个URL都是一个URI。 每个URN都是一个URI。
背景
根据W3C的“URIs,URLs和URNs:澄清和建议1.0”(也由IETF作为RFC 3305发布):
古典观点中,如果一个URI指定了资源的位置,则它是一个URL;如果一个URI指定了资源的名称,则它是一个URN。
现代观点中,区分它们并不相关或有用。
由于术语“URI”和“URL”经常被用作同义词,因此可能会引起混淆
使用一个术语来表示所有内容:URIURL
URI的互联网标准STD 66(目前对应RFC 3986建议

未来的规范和相关文档应该使用通用术语“URI”,而不是更为限制性的术语“URL”和“URN”。

WHATWG的URL Living Standard(以及W3C版本表示

标准化术语URL。URI和IRI只会造成混淆。实际上,一个算法同时适用于两者,因此保持它们的区别并没有帮助任何人。

我的建议

  • 对于所有内容,请使用“URL”和/或“URI”(如果差异相关,则使用“IRI”)。
  • 仅针对具有“urn” URI 方案的 URI,且仅在需要明确指定时才使用“URN”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接