URI,URL,URN

转载。
https://www.cnblogs.com/chengdabelief/p/6635045.html](https://www.cnblogs.com/chengdabelief/p/6635045.html

URI = Universal Resource Identifier 统一资源标志符
URL = Universal Resource Locator 统一资源定位符
URN = Universal Resource Name 统一资源名称

/assets/img/20191019-1.png)

也就是说,URI分为三种,URL or URN or (URL and URI)

URL代表资源的路径地址,而URI代表资源的名称。
通过URL找到资源是对网络位置进行标识,如:

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

通过URI找到资源是通过对名称进行标识,这个名称在某命名空间

中,并不代表网络地址,如:

  • urn:issn:1535-3613

“A Uniform Resource Identifier (URI)
是一个紧凑的字符串用来标示抽象或物理资源。”

“A URI 可以进一步被分为定位符、名字或两者都是. 术语”Uniform Resource
Locator” (URL) 是URI的子集,
除了确定一个资源,还提供一种定位该资源的主要访问机制(如其网络”位置”)。”

“URI可以分为URL,URN或同时具备locators
和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的身份,URL提供了找到它的方式。”

  • 首先,URL是URI的一种(通过那个图就看的出来吧)。所以有人跟你说URL不是URI,他就错了呗。但也不是所有的URI都是URL哦,就好像蝴蝶都会飞,但会飞的可不都是蝴蝶啊,你让苍蝇怎么想!

  • 让URI能成为URL的当然就是那个”访问机制”,”网络位置”。e.g. http://
    or ftp://.。

  • URN是唯一标识的一部分,就是一个特殊的名字。

总结:

当我们替代web地址的时候,URI和URL那个更准确?

基于我读的很多的文章,包括RFC,我想说URI更准确。

别急,我有我的理由:

我们经常使用的URI不是严格技术意义上的URL。例如:你需要的文件在files.hp.com.
这是URI,但不是URL–系统可能会对很多协议和端口都做出正确的反应。