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 相关文章推荐
asp批量修改记录的代码
Jun 25 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
jQuery中Dom的基本操作小结
Jan 23 Javascript
JS实现div居中示例
Apr 17 Javascript
jQuery $.each遍历对象、数组用法实例
Apr 16 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
Apr 17 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
Jan 04 Javascript
Vuex之理解Mutations的用法实例
Apr 19 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
Nuxt配置Element-UI按需引入的操作方法
Jul 06 Javascript
JavaScript async/await原理及实例解析
Dec 02 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
python实现多层感知器
2019/01/18 Python
Python3监控疫情的完整代码
2020/02/20 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
python 实现控制鼠标键盘
2020/11/27 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
紧急通知
2015/04/17 职场文书
小学生家长意见
2015/06/03 职场文书
消费者投诉书范文
2015/07/02 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js