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 相关文章推荐
jQuery操作input值的各种方法总结
Nov 21 Javascript
jquery实现非叠加式的搜索框提示效果
Jan 07 Javascript
node.js中的fs.symlink方法使用说明
Dec 15 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
Jquery promise实现一张一张加载图片
Nov 13 Javascript
JavaScript数组合并的多种方法
May 22 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
简单的JS轮播图代码
Jul 18 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
JS获取url参数,JS发送json格式的POST请求方法
Mar 29 Javascript
javascript Canvas动态粒子连线
Jan 01 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数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
Python中的Django基本命令实例详解
2018/07/15 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
python中np是做什么的
2020/07/21 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
领导欢迎词范文
2015/01/26 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL