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 相关文章推荐
js判断IE浏览器版本过低示例代码
Nov 22 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
jQuery操作基本控件方法实例分析
Dec 31 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
Javascript网页抢红包外挂实现分享
Jan 11 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
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处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
vue中@change兼容问题详解
2019/10/25 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
python操作链表的示例代码
2020/09/27 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
公务员培训自我鉴定
2013/09/19 职场文书
应届大学生自荐信
2013/12/05 职场文书
高三语文教学反思
2014/01/15 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
工作保证书怎么写
2015/02/28 职场文书