URI、URL和URN之间的区别与联系


Posted in Javascript onDecember 20, 2006

URI:Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。
其中,URL,URN是URI的子集。
Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:
URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。
URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。
URI是以某种统一的(标准化的)方式标识资源的简单字符串。
URI一般由三部分组成:
1. 访问资源的命名机制。 
2. 存放资源的主机名。 
3. 资源自身的名称,由路径表示。 
典型情况下,这种字符串以scheme(命名URI的名字空间的标识符——一组相关的名称)开头,语法如下:
[scheme:] scheme-specific-part 
URI以scheme和冒号开头。Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。如下面的例子:
http://www.cnn.com,其中http是scheme,//www.cnn.com是 scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。
URI有绝对和相对之分,绝对的URI指以scheme(后面跟着冒号)开头的URI。前面提到的http://www.cnn.com就是绝对的URI的一个例子,其它的例子还有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。 
与绝对的URI不同的,相对的URI不是以scheme(后面跟着冒号)开始的URI。 它的一个例子是articles/articles.html。你可以把相对的URI看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。如果用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。

URL是Uniform Resource Location的缩写,译为"统一资源定位符"。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。 
URL的格式由下列三部分组成: 
第一部分是协议(或称为服务方式); 
第二部分是存有该资源的主机IP地址(有时也包括端口号); 
第三部分是主机资源的具体地址。,如目录和文件名等。 
第一部分和第二部分之间用"://"符号隔开,第二部分和第三部分用"/"符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。
目前最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。因此人们正在研究新的信息资源表示方法,例如:URI(Universal Resource Identifier)即"通用资源标识"(参见RFC 1630)、URN(Uniform Resource Name)即"统一资源名"和URC(Uniform Resource Citation)即"统一资源引用符"等。
URI目前还处在进一步的研究当中。研究的方向就是弥补URL目前存在的缺点。

Javascript 相关文章推荐
javascript处理table表格的代码
Dec 06 Javascript
js获取某月的最后一天日期的简单实例
Jun 22 Javascript
js中复制行和删除行的操作实例
Jun 25 Javascript
jquery实现人性化的有选择性禁用鼠标右键
Jun 30 Javascript
开源的javascript项目Kissy介绍
Nov 28 Javascript
如何编写高质量JS代码
Dec 28 Javascript
Javascript基础教程之关键字和保留字汇总
Jan 18 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
Javascript SHA-1:Secure Hash Algorithm
Dec 20 #Javascript
Code:findPosX 和 findPosY
Dec 20 #Javascript
Javascript MD4
Dec 20 #Javascript
用JavaScript获取网页中的js、css、Flash等文件
Dec 20 #Javascript
取得一定长度的内容,处理中文
Dec 20 #Javascript
解决FLASH需要点击激活的代码
Dec 20 #Javascript
用 JavaScript 迁移目录
Dec 18 #Javascript
You might like
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php程序内部post数据的方法
2015/03/31 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
2011/03/25 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
Python装饰器基础详解
2016/03/09 Python
python 系统调用的实例详解
2017/07/11 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
Java程序员面试90题
2013/10/19 面试题
招商业务员岗位职责
2013/12/16 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
会计人员岗位职责
2015/02/03 职场文书
团员个人年度总结
2015/02/26 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python