前言
不知道大家有没有电话拨号通过'猫'上网的经历,那时测试网络是否连接,最好的方式就是打开浏览器输入:
www.baidu.com
那会管这一连串字母叫‘ 网址 ’。之后上大学(计算机专业),知道了这一串字母还有一个名字‘ URL ’。再后来毕业了,找了个IT工作,有的同事又管它叫‘ URI ’。那么到底这一连串字母叫什么呢?URL和URI有时什么关系呢?
通过*看问题,我对它们的关系有了基本的认识。分享给大家:
PS:下文均翻译自*看到的高票答案,例子中的‘我’指原作者
概念
URI - 统一资源标识符
URI是使用数字,字母和符号的短字符串来标识文档的标准。
URL,URN和URC都是URI的种类。
URL - 统一资源定位符
包含如何从其位置获取资源的信息。例如:
- http://example.com/mypage.html
- ftp://example.com/download.zip
- mailto:user@example.com
- file:///home/user/file.txt
- tel:1-888-555-5555
- http://example.com/resource?foo=bar#fragment
- /other/link.html (相对URL,仅在另一个URL的语境下有用)
URL通常以协议(http)开头,包含网络主机名(example.com)和文档路径(/foo/mypage.html)等信息。 URL还可能具有查询参数和锚点标识符。
URN - 统一资源名称
通过唯一且持久的名称来标识资源,但不一定告诉你如何在互联网上找到它。它通常以前缀urn开头:例如:
- urn:isbn:0451450523 以其ISBN号码识别一本书。
- urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 全局唯一标识符
- urn:publishing:book - 使用XML命名空间为文档标识一种book。
URN不仅限于识别文件,还可以识别想法和概念。当URN确实代表文档时,可以通过“解析器”将其翻译成URL。然后可以从URL下载文档。
URC - 统一资源引用
指向文档的元数据而不是文档本身。 URC的一个例子是指向页面的源代码:view-source:http://example.com/
Data URI
既不能将其在互联网上定位,也不能将其命名,数据可以直接放入URI。一个例子就是 data:,Hello%20World
举个(通俗)熟栗子
URI和URI
URI负责识别,URL负责定位;然而,定位符也是标识符,因此每个URL都是URI,但是每个URI并不全是URL。
Roger Pate
这是我的名字,这是一个标识符。它就像一个URI,但它不是一个URL,因为它没告诉你我的位置以及如何联系到我。在这种情况下,单单在美国至少就能找到5个与我同名的。
4914 West Bay Street,Nassau,Bahamas
这是一个带有物理位置标识符的定位符。它像URL和URI(因为所有URL都是URI),并且间接把我识别为“..的居民”。在这种情况下,它可以唯一标识我,但如果新搬来一个室友,那将会改变。
我“喜欢(栗子)”,因为这些示例不依托于必要的语法。
普遍疑惑
来自*:
在计算机领域中,统一资源定位符(URL)是统一资源标识符(URI)的子集,用于指定标识资源可用的位置以及检索资源的机制。普遍用法和许多技术文档和口头讨论中,它经常被错误地用作URI的同义词,…
由于这种常见的混淆,许多产品和文档不正确地使用一个术语而不是另一个术语,指出它们自身的区别,否则就会同义地使用它们。
URN
我的名字Roger Pate可能就 像 一个URN(统一资源名称),会受到更多的管制,旨在空间和时间上都是独一无二的。
但是这个名字,并不是全局唯一的,因此并不适合作为URN。 即使没有人使用这个名字,我和我的祖父的祖父同名,它仍然不会是独一无二的。 我和我后代也可能同名使得这个名字也不适合作为URN。
在这个严格唯一性约束前提下,URN与的URL不同,即使它们都共享URI的语法。
结论
参考
- http://*.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn
- http://*.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn#answer-1984225
- http://*.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn#answer-28865728