URI,URL和URN有什么区别?
这个问题在这里已经有了答案:
统一资源标识符( 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>
是名称空间特定字符串。
换句话说:
我要说的是,让它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的令人敬畏的解释。
理论:
那是:
举个例子:
另外,如果你还没有,我建议阅读罗杰帕特的答案。
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