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的函数重名看其初始化方式
Mar 08 Javascript
jquery 指南/入门基础
Nov 30 Javascript
jquery 可排列的表实现代码
Nov 13 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
js添加事件的通用方法推荐
May 15 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
Apr 17 Javascript
js new Date()实例测试
Oct 31 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
php与js的区别是什么
2013/08/05 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
python3判断url链接是否为404的方法
2018/08/10 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python支付宝支付示例详解
2019/08/22 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
Order by的几种用法
2013/06/16 面试题
远程教育心得体会
2014/01/03 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
初三学生个人自我评定
2014/04/06 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
青岛导游词
2015/02/12 职场文书
单独二胎证明
2015/06/24 职场文书
生活小常识广播稿
2015/08/19 职场文书