天天看点

URI、URL与URN的区别是什么?

当谈起URL、URI、URN时,仿佛他们是不同的东西,但是单凭肉眼来看,他们看起来似乎又是一样的。

那么,他们之间有什么明显区别呢?

(以下摘自stackoverflow网友回答)

1.Roger Pate网友

URI用于识别,URL用于定位;然而,定位符通常也是标识符,因此每一条URL也是一个URI,但却有一些URI并不能称作URL。

一些实例:

Roger Pate

我的名字Roger Pate是一个标识符。这就像是一个URI,但却不能是一条URL,因为通过它你不会知道我的住址或者是联系方式。这样的话,仅在美国就会匹配到至少五个和我名字一样的人。

4914 West Bay Street, Nassau, Bahamas(巴哈马拿骚市西湾街4914号)

这是一个地点,一个物理位置的标识符。它既像一条URL又像一个URI(因为URL即URI),又间接地确认我是一个住在西湾街4914号的居民。在这个案例中,我的居住地址唯一地标识了我,但是要是我有一个舍友的话就另当别论了。

我之所以用"像"是因为这些例子并不按照所需的语法。

常见的混淆

以下引自维基百科

1

2

3

<code>在计算机中,一个统一资源定位符(URL)是统一资源标识符(URI)的子集,它指定了一个已标识的可</code>

<code>用资源及检索机制。在流行的习惯用语、许多技术文档以及口头语言中,URL常常被错误地当成URI的同</code>

<code>义词使用。...(我加上的重点)</code>

由于这两个词太容易混淆,许多产品及文档都错误地使用其中一个词代替另外一个,指定他们自己的区别,或者把他们当同义词使用。

URNs

除了那些更受管制,并打算在空间和时间也必须是唯一的这些情况外,我的名字Roger Pate就可以说是一个统一资源名称(Uniform Resource Name)。

因为我现在与别人都使用这个叫做"Roger Pate"的名字,这个名字就不是全球唯一的了,也就不适合称作一个URN了。然而,即使没有其他家庭使用此名字,我是以我祖父的名字命名的,那么在时间上我的名字也就不是唯一的。即使事实上并非如此,我以我的名字命名我后代的可能性也让其不适合作为一个URN。

URN有别于有着严格唯一性约束的URL,虽然二者都遵循URI的语法。

2.Stephen Ostermiller网友

URI -- 统一资源标识符

URI是使用一小串数字、字母和符号来识别文档的标准。它是在RFC 3986定义的:URI指的是通用句法。所有的URL、URN及URC都是URI。

URL -- 统一资源定位符

URL中包含了如何通过其位置来获取资源的信息。例如:

http://example.com/mypage.html

ftp://example.com/download.zip

mailto:[email protected]

file:///home/user/file.txt

tel:1-888-555-5555

http://example.com/resource?foo=bar#fragment

/other/link.html (一个相对URL,只有在另外一个完整的URL上下文中才有用)

URL总是以一个协议头开始,通常包括诸如主机名(example.com)和一个文件路径(/foo/mypage.html)。URL可能也会有查询参数及片段识别符。

URN -- 统一资源名称

URN通过一个唯一及持续的名字来标识资源,但却不必告诉你如何在网络上定位到它。它通常是以一个urn前缀的开头的。例如:

urn:isbn:0451450523 to identify a book by its ISBN number.

urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 a globally unique identifier

urn:publishing:book - An XML namespace that identifies the document as a type of book.

URN可以识别想法和概念。他们并不限于识别文件。当一个URN代表一个文件时,它可以被一个解析器转换成一条URL。然后这个文件就这个用转换后的URL下载了。

URC -- 统一资源引用符

Data URI

我们可以直接将数据放到一个URI中,而不是在互联网上定位或命名它。一个数据URI:data:,Hello%20World。

3.几张图表带你更进一步理解三者关系

<a href="https://s3.51cto.com/wyfs02/M01/8E/8C/wKioL1jFCtahHsYcAAGIzNbW2yc512.png" target="_blank"></a>

本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1905492,如需转载请自行联系原作者

继续阅读