大家好,我是社区技术顾问——adds,主要从事网络、网络安全等方面工作,受管理员小姐姐所邀参与社区【技术圆桌】话题发起人活动,与大家一起讨论一个经典的问题:URI和URL有什么关系?URN又是什么?欢迎对网络、网络安全有兴趣的朋友回帖交流,一起学习,一起温故而知新,一起栉风浴雨!
本次技术圆桌分为三个模块: 模块一:知识普及,介绍URI、URL、URN的历史以及发展; 模块二:圆桌讨论,大家结合自己的实际工作,谈谈你在哪些项目上遇到了URI、URL、或URN?如何更好的区分这三个概念? 模块三:圆桌互动,关于URI相关的知识大家如果有其他的疑问,欢迎在本帖下面留言,我会知无不言,大家一起学习一起成长!
模块一:知识普及 1、URI有什么用?为什么要学? 对于很多人来说,我知道 棒子、土豆、西红杮就好了,没必要知道他们是玉米、马铃薯、蕃茄的别称。但是如果你是搞农业、蔬菜研究的,你就要知道他们的学名。 同样,对于很多人来说,我知道地址、域名、URL就够了,没必要知道他们都叫URI,但对于搞网络的人来说,你就有必要知道,因为你是专业的。假如客户跟你聊URI,你却不知道,客户就会认为你不是很专业。
举个实际例子: 在AD里,有一个场景,需要用到前置调度策略。这里面有个字段叫“URI”,如果不了解URI是什么,就会导致无法配置或配置错误。
2、争论 一直存在很多技术上的争论,其中最妙的恐怕就是web地址应该中什么的问题。通常情况就是这样:有人把地址栏的内容叫“URL”,这时候有人就来劲了:“不,!其是那是URI。。。” 本文简单总结下,方便大家以后互黑能黑到点上。 本次我们就来聊一聊什么是URI、URL和URN?它们是怎么产生的?怎么区分认识他们?
3、前世今生 URI和URL有着共同的历史。在1990年,Tim Bemers-Lee的关于超文本的提案间接地引入了使用URL作为一个表示超链接目标资源的短字符串的概念。当时,人们称之为“超文本名”或“文档名” 在之后的三年半中,由于万维网的HTML(超文本标记语言)核心技术、HTTP与浏览器都得到了发展,区别提供资源访问和资源标记的两种字符串的必要性开始显现。“统一资源定位符”这一术语开始被用于代表前者,而后者则由“统一资源名称”所表示。1994年6月,IETF发布了RFC 1630,(非正式的)指出了URL和URN的存在。 1994年12月,RFC 1738正式定义了绝对和相对URL。而URN定义和文法直到1997年5月RFC 2141公布后才正式统一。 1998年8月,随着RFC 2396的发表,URI方法形成了独立的标准。 1999年12月,IETF发布了RFC 3986,标识着URI通用文法正式成官方因特网协议。 2000年8月,RFC 3305指出,虽然术语“URL”仍被广泛地用于日常用语之中,但其本身已几乎被废弃。其功用仅仅是作为对于某些URI因包含某种指示着网络可达性的协议而作为地址存在的提醒而已。
4、URI URI,Uniform Resource Identifier,统一资源标识符。 在电脑术语中,统一资源标识符URI是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。 WEB上可用的每种资源-HTML文档、图像、片段、程序等由一个通用资源标识符进行定位。 统一资源定位符URL和统一资源名称URN是URI的子集。 WEB上地址的基本形式是URI,它有两种形式: 一种是URL,这是目前URI的最普通形式。 另一种是URN,这是URL的一种更新形式。URN不依赖于位置,并且有可能减少失效连接的个数。
记住下面这张图,这是全文的精髓。
有ID名为“刺猬要穿新裤子”的小伙伴提出了一个很好的问题:有URI不是URL和URN表现形式的举例吗? 在这里解答下:URI是一种抽象的、高层的概念,URL和URN是具体的的资源标识方式。 可以这样理解,URI有两种表示形式,一个是URL,一个是URN。URN代表名称,URL代表路径;URN定义某事物的身份,URL提供查找该事物的方式。
看这张图会更明晰些:
5、URL URL,Uniform Resource Locator。统一资源定位符。 在www上,每一个信息资源都有统一的且在网上唯一的地址,该地址就叫URL,它是www的统一资源定位标志,就是指网络地址。 URL是一种URI,它不仅标识了Web资源,还指定对其进行操作或获取该资源的方法,同时指出了主要访问机制和网络位置。 URL由三部分组成:资源类型、存放资源的主机域名、资源文件名 也可认为由4部分组成:协议、主机、端口、路径 URL的一般语法格式为:protocol://hostname[:port]/path/[:parameters][?query]#fragement 在上例中,https是协议;bbs.sangfor.com.cn是主机;端口是443,由于属于默认,省略;路径是forum.php。[]属于可选项。 这里的https可以是http,也可以是ftp、file、ed2k等协议;端口号、路径、参数均可省略。 URL主要用在各种www客户端和服务器程序上,采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器地址和目录等。
6、URN URN,Uniform Resource Name,统一资源名称。 1997年的RFC 2141中定义了URN,期望为资源提供持久的、位置无关的标识方式,并允许简单地将多个命名空间映射到单个URN命名空间。这样一个URI的存在并不意味着被标识的资源一定是可用的,但它仍然需要保持全局唯一和持久,即使资源已经不存在了或变得不可用。 URN是URI的一种,用特定命名空间的名字标识资源。 URN是基于某名字空间通过名称指定资源的URI。人们可以通过URN来指出某个资源,而无需指出其位置和获得方式。资源无需是基于互联网的。例如:URNum:ISBN0-395-36341-2)指定标识系统(即国际标准书号ISBN)和某资源在该系统中的唯一表示的URI。它允许人们在不指出其位置和获得方式的情况下谈论这本书。 统一资源名和统一资源定位符都是统一资源标识符的概念的一种。 统一资源名仍然有IEFT的成员在继续开发。
7、总结 如果你忘了这篇文章的内容,记住一件事就好了:URI被分为URL和URN,如果不知道使用哪一个,就一直使用URI就好了。
URI举例,来自权威RFC: ftp://ftp.is.co.za/rfc/rfc1808.txt http://www.ietf.org/rfc/rfc2396.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@example.com urnasis:names:specification:docbook:dtd:xml:4.1.2
话题1:你在哪些产品中遇到过URI、URL或URN? 话题2:你是如何区分URI、URN、URL他们的?
如果你对网络或网络安全有自己的研究,或者你对网络技术很感兴趣,欢迎大家从技术的层面上对以上问题进行探讨。如您还有其他想了解的疑问,欢迎回帖提问补充 !但提问不要太难哦,我也是网络攻城狮,技术圆桌是兼职,不是IETF(互联网工程任务组)。:白眼:
模块三:圆桌互动 关于网络、网络安全技术大家如果有其他的疑问,欢迎在本帖下面留言,我会知无不言,大家一起学习一起成长! 回帖格式:我还想了解+具体的URI相关的知识点... 凡是有效提问者,可额外获得20S豆奖励哦;
讨论时间:2020年3月17日---2020年3月27日
【奖品设置】 1、基础回帖奖:凡有效回帖者可获得20S豆奖励;(凡有效提问者可额外获20S豆奖励) 2、参与幸运奖:本帖设置7500S豆回帖奖励,每次回复有机会获得50S豆(机率60%); 3、优秀回复奖:凡回复的内容,被管理员设置为优秀回复的,即可获得100S豆打赏! 4、最佳回复奖:活动结束后,由话题发起人评选出1位最佳回复者,赠送热门学习书籍《网络战》一本;
5、任性奖:本着学习、娱乐两手抓的态度,特增设此奖。大家可以猜测楼主的生肖属相,第一个猜对者奖励楼主特喜欢的书藉一本--《万历十五年》,由楼主本人负责采买、邮寄。
【回帖规则】 1、回复须与主题相关且为原创,如回复无实质性或非原创内容,管理员将判定为灌水,进行删除处理。 2、如恶意抄袭,以不良手段获取礼品行为,一经发现取消获奖资格,并对账号进行1月以上禁言警示。 3、以上多重奖励可叠加发放,可盖楼回复但每个帖子回帖仅奖励一次,活动结束后将进行统一发放。
欢迎大家回帖补充/提问交流 PS:文章有处错误,误将“URN”写成了“RUN”,物此感谢“Jinni”的指正。 |