我已经阅读了很多关于URI s、URL s 和URN s 的文章,但我不明白实际示例中的差异。
你能举几个URI和URL 的例子吗?
我认为http://stack.com/first/index.html?submit=yes&action=go#second是 URI,而不是 URL,是吗?
然后http://stack.com/first/index.html是 URL,因为它不是那么具体?
这个图是对的吗?
这是J.Webber、S.Parastatidis、I.Robinson的REST in Practice 中的引述,它抓住了差异的本质:
URL 和 URN 是 URI 的特殊形式。
标识可以访问资源的机制的URI通常称为URL。HTTP URI 是 URL 的示例。
如果URI有瓮其方案并遵守规定的RFC 2141和RFC 2611,它是一个URN。URN 的目标是为资源提供全球唯一的名称。
顺便说一下,这本书的ISBN是ISBN-13: 978-0596805821。如果您单击 Amazon.com 的链接“为什么 ISBN 重要”,您将看到工具提示说:
此条形码编号可让您验证您获得的图书版本或版本是否完全正确。
这是urn:isbn命名空间中的 URN(以及定义的 URI)的一个示例,它不假定任何用于检索此资源的给定机制,但会识别它。
如果你有一些在线书籍的链接,例如,PDF 格式,那将是一个 URL(和 URI 的定义),看起来像这样:
https://www.somewebsite.org/books/RestInPractice.pdf
Run Code Online (Sandbox Code Playgroud)
不,图像不正确。您的两个示例都是 URI 和 URL。
\n每个 URL 都是一个 URI。
\n每个 URN 都是一个 URI。
根据 W3C\xe2\x80\x99s URI、URL 和 URN:澄清和建议 1.0(也由 IETF 作为RFC 3305发布):
\n在经典视图中,如果 URI 指定资源的位置,则它是 URL;如果 URI 指定名称,则它是 URN,则它是 URL;如果 URI 指定资源的
\n在当代看来,进行这种区分是不相关或无用的。
\n由于术语“URI”和“URL”经常作为同义词使用,因此可能会引起混淆。
\nURI 的互联网标准STD 66(当前映射到RFC 3986)建议:
\n\n\n未来的规范和相关文档应使用通用术语“URI”,而不是更具限制性的术语“URL”和“URN”
\n
WHATWG\xe2\x80\x99s URL Living Standard(及其W3C\xe2\x80\x99s 版本)说:
\n\n\n对术语 URL 进行标准化。URI 和 IRI 很容易混淆。实际上,两者都使用单一算法,因此保持它们不同对任何人都没有帮助。
\n
urnURI 方案的 URI 使用“URN”,并且仅当您需要具体时才使用。