URL、URI和URN三者之间的区别
来源:互联网 发布:冻力测试仪 js 2 编辑:程序博客网 时间:2024/06/03 10:30
起源
这三个缩略词是Tim Berners-Lee在一篇名为RFC 3986: Uniform Resource Identifier (URI): Generic Syntax的文档中定义的互联网标准追踪协议。
区别
首先我们要弄清楚一件事:URL和URN都是URI的子集。
换言之,URL和URN都是URI,但是URI不一定是URL或者URN。为了更好的理解这个概念,看下面这张图片。
通过下面的例子(源自 Wikipedia),我们可以很好地理解URN 和 URL之间的区别。如果是一个人,我们会想到他的姓名和住址。
URL类似于住址,它告诉你一种寻找目标的方式(在这个例子中,是通过街道地址找到一个人)。要知道,上述定义同时也是一个URI。
相对地,我们可以把一个人的名字看作是URN;因此可以用URN来唯一标识一个实体。由于可能存在同名(姓氏也相同)的情况,所以更准确地说,人名这个例子并不是十分恰当。更为恰当的是书籍的ISBN码和产品在系统内的序列号,尽管没有告诉你用什么方式或者到什么地方去找到目标,但是你有足够的信息来检索到它。引自这篇文章:
所有的URN都遵循如下语法(引号内的短语是必须的):
其中NID是命名空间标识符,NSS是标识命名空间的特定字符串。
一个用于理解这三者的例子
我们来看一下上述概念如何应用于与我们息息相关的互联网。
再次引用Wikipedia ,这些引文给出的解释,比上面人员地址的例子更为专业:
关于URL:
URL是URI的一种,不仅标识了Web 资源,还指定了操作或者获取方式,同时指出了主要访问机制和网络位置。
关于URN:
URN是URI的一种,用特定命名空间的名字标识资源。使用URN可以在不知道其网络位置及访问方式的情况下讨论资源。
现在,如果到Web上去看一下,你会找出很多例子,这比其他东西更容易让人困惑。我只展示一个例子,非常简单清楚地告诉你在互联网中URI 、URL和URN之间的不同。
我们一起来看下面这个虚构的例子。这是一个URI:
我们开始分析
是定义如何访问资源的方式。另外
是资源存放的位置,那么,在这个例子中,
是资源。
URL是URI的一个子集,告诉我们访问网络位置的方式。在我们的例子中,URL应该如下所示:
URN是URI的子集,包括名字(给定的命名空间内),但是不包括访问方式,如下所示:
就是这样。现在你应该能够辨别出URL和URN之间的不同。
如果你忘记了这篇文章的内容,至少要记住一件事:URI可以被分为URL、URN或两者的组合。如果你一直使用URI这个术语,就不会有错。
原文链接http://web.jobbole.com/83452/
【四川乐山程序员联盟,欢迎大家加群相互交流学习5 7 1 8 1 4 7 4 3】
- URL、URI和URN三者之间的区别
- URL、URI和URN三者之间的区别
- URL、URI和URN三者之间的区别
- URL、URI和URN三者之间的区别
- URL、URI和URN三者之间的区别
- URL,URI 和URN 之间的区别
- URL,URI 和URN 之间的区别
- URL, URI 和 URN 之间的区别
- URL,URI 和URN 之间的区别
- URL, URI 和 URN 之间的区别
- URL、URI和URN之间的区别
- URL、URI和URN三者之间的关系
- 你知道URL、URI和URN三者之间的区别吗?
- 你知道URL、URI和URN三者之间的区别吗?
- 你知道URL、URI和URN三者之间的区别吗?
- Uri、URL和URN三者的区别
- URI、URL和URN之间的区别与联系
- URI、URL和URN之间的区别与联系
- Solr之维护索引。
- Shell面试常问指令总结(1)
- 屏蔽浏览器界面Backspace按钮单击事件
- synchronized
- GlobalPlatform TEE Protection Profile (PP)Version 1.2.1 A.3 攻击路径举例(二)
- URL、URI和URN三者之间的区别
- LeetCode_19_Remove Nth Node From End of List
- tomcat起步内存溢出问题Exception in thread ""http-bio-8080"-exec-6
- 阿里云ECS云服务器centos系统 数据盘扩容教程
- 充值订单 换算成美元 方法,利用bootstrap-table插件和requests库实现
- JQuery之$.ajax()
- 第一个Hibernate例子(亲测可用)
- java接口数据json过滤字段方法整理
- 操作系统架构随笔