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 学习笔记 element属性控制
Jul 23 Javascript
JQuery 操作select标签实现代码
May 14 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
js常见遍历操作小结
Jun 06 Javascript
解决微信小程序中的滚动穿透问题
Sep 16 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 Javascript
浅谈Vue 函数式组件的使用技巧
Jun 16 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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
Python导入oracle数据的方法
2015/07/10 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
Python登录注册验证功能实现
2018/06/18 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Python如何输出整数
2020/06/07 Python
python re.match()用法相关示例
2021/01/27 Python
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
求职信内容考虑哪几点
2013/10/05 职场文书
劳动实践课感言
2014/02/01 职场文书
高中军训感言200字
2014/02/23 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
教师研修随笔感言
2015/11/18 职场文书