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中String和StringBuffer的速度之争
Apr 01 Javascript
ejs v9 javascript模板系统
Mar 21 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
button没写type=button会导致点击时提交
Mar 06 Javascript
浅谈javascript的Touch事件
Sep 27 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Python有参函数使用代码实例
2020/01/06 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
生物制药自我鉴定
2014/01/25 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
投资意向协议书
2015/01/29 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis