URI,URL和URN有什么区别?

这个问题在这里已经有了答案:

  • URI,URL和URN有什么区别? 33个答案

  • 统一资源标识符( URI )是用于标识Internet上名称或资源的字符串

    URI通过位置或名称或两者来标识资源。 一个URI有两个专门化称为URL和URN。

    统一资源定位符( URL )是统一资源标识符(URI)的子集,用于指定已识别资源的可用位置以及用于检索的机制。 URL定义了如何获取资源。 它不一定是HTTP URL(http://),URL也可以是(ftp://)或(smb://)。

    统一资源名称( URN )是使用URN方案的统一资源标识符(URI), 并不意味着标识资源的可用性 。 URN(名称)和URL(定位符)都是URI,并且特定的URI可能同时是名称和定位符。

    URN是由URN,URC和URL组成的更大互联网信息架构的一部分。

    bar.html不是URN 。 URN类似于人的名字,而URL则像街道地址。 URN定义了一些东西的身份,而URL提供了一个位置。 从本质上讲,“什么”与“哪里”。 URN必须采用这种形式<URN> ::= "urn:" <NID> ":" <NSS>其中<NID>是名称空间标识符, <NSS>是名称空间特定字符串。

    换句话说:

  • URL是标识资源的URI,也提供了通过描述访问资源的方式来定位资源的方法
  • 一个URL是一个URI
  • 一个URI不一定是一个URL
  • 我要说的是,让它100%清晰的唯一办法就是拥有一个不是URL的URI的例子。 我们可以使用RFC3986中的示例:

    URL: ftp://ftp.is.co.za/rfc/rfc1808.txt
    URL: http://www.ietf.org/rfc/rfc2396.txt
    URL: ldap://[2001:db8::7]/c=GB?objectClass?one
    URL: mailto:John.Doe@example.com
    URL: news:comp.infosystems.www.servers.unix
    URL: telnet://192.0.2.16:80/
    URN (not URL): urn:oasis:names:specification:docbook:dtd:xml:4.1.2
    URN (not URL): tel:+1-816-555-1212 (?)
    

    也检查了这一点 - https://quintupledev.wordpress.com/2016/02/29/difference-between-uri-url-and-urn/


    下面我总结Prateek Joshi的令人敬畏的解释。

    理论:

  • URI(统一资源标识符)标识资源(文本文件,图像文件等)
  • URL(统一资源定位符)是包含网络位置的URI的子集
  • URN(统一资源名称)是在给定空间内包含名称但没有位置的URI的子集
  • 那是:

    举个例子:

    在这里输入图像描述

    另外,如果你还没有,我建议阅读罗杰帕特的答案。


    URL - 统一资源定位器

    包含有关如何从其位置获取资源的信息。 例如:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (相对URL,仅在另一个URL的上下文中有用)
  • URL始终以协议( http )开头,通常包含网络主机名( example.com )等信息以及文档路径( /foo/mypage.html )。 URL可能有查询参数和片段标识符。

    URN - 统一资源名称

    按名称标识资源。 它总是以前缀urn:开头urn:例如:

  • urn:isbn:0451450523通过它的ISBN编号来识别一本书。
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66全球唯一标识符
  • urn:publishing:book - 将文档标识为书籍类型的XML名称空间。
  • URN可以识别想法和概念。 它们不限于识别文件。 当URN代表文档时,它可以通过“解析器”转换为URL。 然后可以从URL下载文档。

    URI - 统一资源标识符

    URI包含URL,URN和其他表示资源的方式。

    一个既不是URL也不是URN的URI的例子是数据URI,如data:,Hello%20World 。 它不是URL或URN,因为URI包含数据。 它既不命名它,也不告诉你如何通过网络找到它。

    还有统一的资源引用(URC)指向文档的元数据,而不是文档本身。 URC的一个例子是查看网页源代码的指标: view-source:http://example.com/ 。 URC是另一种既不是URL又不是URN的URI。

    经常问的问题

    我听说我不应该再说URL了,为什么?

    HTML的w3规范指出,锚标签的href可以包含一个URI,而不仅仅是一个URL。 您应该可以放入URN,例如<a href="urn:isbn:0451450523"> 。 您的浏览器会将该URN解析为一个URL并为您下载该书。

    任何浏览器是否真的知道如何通过URN获取文档?

    不是我所知道的,但现代的网页浏览器确实实现了数据URI方案。

    一个URI既可以是URL又可以是URN?

    好问题。 我在网上看到很多地方说这是真的。 我一直无法找到任何既是URL又是URN的例子。 我不明白它是如何实现的,因为URN以urn:开头urn:这不是一个有效的网络协议。

    URL和URI之间的区别与它的相对还是绝对有关系吗?

    不,相对和绝对URL都是URL(和URI)。

    URL和URI之间的区别与它是否具有查询参数有什么关系?

    不,有和没有查询参数的URL都是URL(和URI)。

    URL和URI之间的区别与它是否具有片段标识符有关吗?

    不可以。带和不带片段标识符的URL都是URL(和URI)。

    tel: URI是URL还是URN?

    例如tel:1-800-555-5555 。 它不以urn:开头urn:它有一个通过网络访问资源的协议。 它必须是一个URL。

    但是W3C现在不说URL和URI是相同的东西?

    是。 W3C意识到这有很多困惑。 他们发布了一份URI说明文件,表示现在可以交换使用URL和URI。 将URI严格分为不同的类型(如URL,URN和URC)不再有用。

    链接地址: http://www.djcxy.com/p/1895.html

    上一篇: What is the difference between URI, URL and URN?

    下一篇: Modify the URL without reloading the page