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_01_isPlainObject分析与重构
Oct 20 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
Js实现网页键盘控制翻页的方法
Oct 30 Javascript
js添加事件的通用方法推荐
May 15 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
vue事件修饰符和按键修饰符用法总结
Jul 25 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 Javascript
vue中使用rem布局代码详解
Oct 30 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP ajax 分页类代码
2008/11/13 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python快速排序算法实例分析
2017/11/29 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
美国渔具店:FishUSA
2019/08/07 全球购物
数控专业推荐信范文
2013/12/02 职场文书
小学生环保标语
2014/06/13 职场文书
毕业大学生自荐信
2014/06/17 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
人事专员岗位职责
2015/02/03 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
解决Redis启动警告问题
2022/02/24 Redis