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中的window.location.search方法简介
Sep 02 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
深入理解vue-class-component源码阅读
Feb 18 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
js实现星星海特效的示例
Sep 28 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编程中八种常见的文件操作方式
2006/11/19 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
2014年自我评价
2014/01/04 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
2015国庆节感想
2015/08/04 职场文书
学校少先队工作总结
2015/08/12 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
python使用glob检索文件的操作
2021/05/20 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Vue全局事件总线你了解吗
2022/02/24 Vue.js