URI,URL,URN三者关系之个人理解

来源:互联网 发布:高音哥 知乎 编辑:程序博客网 时间:2024/06/05 04:28
首先URI,URL,URN的全称如下:
URI(Uniform Resource Identifier) :统一资源标识
URL(Uniform ResourceLocator) 
  :统一资源定位符
URN(Uniform ResourceName)      :统一资源名称

1 要弄清三者之间的关系,首先要了解什么是互联网资源?
我们比较常见的,某网站或某服务器上的图片,mp3音乐,电影,电子书等等这些都是互联网资源。广义上讲,互联网上任何有意义的数据信息都可以称为互联网资源。

2 面对海量的互联网的资源,如何来标识这些资源呢?

URN:从为每一个资源起一个唯一的名称的角度出发。比如用于唯一标识书目的ISBN系统是一个典型的URN使用范例。例如,ISBN0-486-27557-4(urn:isbn:0-486-27557-4)无二义性地标识出莎士比亚的戏剧《罗密欧与朱丽叶》的某一特定版本。由于为每一个资源起一个唯一的名称显然需要专门的组织机构来管理,所以并不是有的资源都URN.

URL:从资源存储位置角度来标识资源,URL唯一的标识了资源路径以及通过什么协议可以获取到该资源等信息。

3 URI,URN,URL的
三者关系
它们都是基于“资源标识”的概念产生的,从不同的角度对资源进行标识URN(统一资源)类似一个人的名称,而URL(统一资源定位符)类似一个人的住址,换言之,URN定义某事物的身份,而URL提供查找该事物的方法。但他们不存在一一对应关系。比如《罗密欧与朱丽叶》这本书的urn:isbn:0-486-27557-4是唯一的。但新浪和网易都提供这本书的下载(所以URL两个)。这个问题其实很好理解,就像我们在网络上根据歌名搜索歌曲时可以搜索到N个URL(网友习惯为网络链接)。

URI(
统一资源标识)则是更抽象一层的概念,URI可以是URL,也可以是URN或两者兼备。他们的关系有点类似面向对象编程语言中的父类子类关系。URI是一个抽象的类,用来描述互联网资源。URN和URL则是URI的子类,实类。所以URI可以是URN也可以是URL.如果你关心的是网络资源的名称那么你可以将URI定义成URN的形式,如果你关心的是如何获取到该资源,那么你可以将URI定义成URL的形式。

URI举例:

http://example.org/absolute/URI/with/absolute/path/to/resource.txt
ftp://example.org/resource.txt

urn:issn:1535-3613


显然第一,二个URI其实就是URL,第三个URI则是URN。所以URL一定是URI,但URI不全是URL.
0 0
原创粉丝点击