URI、URL和URN的区别

前言

最近实习在维护前辈的代码的时候以及看书的时候看到须要获取连接的地方,会出现Uri这个词。网上一查才知道原来连接命名居然有3种,而本身居然一直只知道URL,真是孤陋寡闻。因此,今天写下这篇博客记录一下。html

URi-统一资源标识符(为了与url区别此处把I写为小写i)

什么是URi

首先,什么是URi呢?URi,全称为uniform resource identifier,统一资源标识符,用来惟一的标识一个资源。java

Web上可用的每种资源-HTML文档、图像、视频片断、程序等都由一个通用资源标识符(即URI)进行定位。浏览器

URi通常由三部分组成:
1.访问资源的命名机制
2.存放资源的主机名
3.资源自身的名称,由路径表示服务器

例子:http://www.dodomonster.com/ht...app

这个URi是这样的:这是一个经过HTTP协议访问的资源,位于www.dodomonster.com上,经过路径"/html/html4"访问。框架

有的URi指向一个资源的内部。这种URi以"#"结束,并跟着一个anchor标识符(称为片断标识符)。例如,下面是一个指向section_2的URi:http://somesite.com/html/top....dom

绝对URi

URi 有绝对和相对之分,绝对的URi 指以scheme(后面跟着冒号)开头的URi。前面提到的http://www.cnn.com就是绝对的URi的一个例子,其它的例子还有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你能够把绝对的URi看做是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。若是使用文件系统做类比,绝对的URi相似于从根目录开始的某个文件的径。ide

相对URi

相对URi 不包含任何命名规范信息。它的路径一般指同一台机器上的资源。相对URi可能含有相对路径(如,"..."表示上一层路径),还可能包含片断标识符。为了说明相对URi,此处举一个例子:http://www.dodomonster.com/su...工具

下面的连接中使用了相对URi:suppliers
它扩展成彻底的URi就是"http://www.dodomonster.com/suppliers.htm"
下面是一个图形的相对URi:<img src="../icons/logo.png" alt="logo">
它扩展成彻底的URi就是"http://www.dodomonster.com/icons/logo.png"url

  与绝对的URi 不一样的,相对的URi 不是以scheme(后面跟着冒号)开始的URi。 它的一个例子是articles/articles.html。你能够把相对的URI看做是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。若是用文件系统做类比,相对的URi 相似于从当前目录开始的文件路径。

URi用途

在HTML中,URi被用来:
1.连接到另外一个文档或资源
2.连接到一个外部样式表或脚本
3.在页内包含图形、对象或applet
4.简历图像映射
5.提交一个表单
6.创建一个框架文档
7.引用一个外部参考
8.指向一个描述文档的metadata

URL-统一资源定位器

什么是URL

URL是uniform resource locator,统一资源定位器,它是一种具体的URi,即URL能够用来标识一个资源,并且还指明了如何locate这个资源。通俗地说,URL是Internet上用来描述资源的字符串,主要用在各类www客户端和服务器程序是,特别是著名的Mosaic。采用URL能够用一种统一的格式来描述各类信息资源,包括文件、服务器的地址和目录等。

URL的第一个部分http://表示要访问的文件的类型。在网上,这几乎老是使用http(超文本传输协议,hypertext transfer protocol-用来转换网页的协议);有时也使用ftp(文件传输协议,file transfer protocol-用来传输软件和大文件;telnet(远程登陆),主要用于远程交谈以及文件调用等,意思是浏览器正在阅读本地盘外的一个文件而不是一个远程计算机。

URL组成

1.Internet资源类型(schema):指出www客户程序用来C做的工具。如"http://"表示www服务器,"ftp://"表示ftp服务器,"gopher://"表示Gopher服务器,而"new:"表示Newgroup新闻组。必需的。

2.服务器地址(host):指出www网页所在的服务器域名。必需的。

3.端口(port):有时(并不是老是这样),对某些资源的访问来讲,需给出相应的服务器提供端口。可选的。

4.路径(path):指明服务器上某资源的位置。与端口同样,路径并不是老是须要的。可选的。

URL地址格式排列为:schema://host:port/path,如:http://www.maogoo.com/bbs
客户程序首先看到http(超文本协议),便知道处理的是HTML连接。接下来的wwww.maogoo.com是站点地址,最后是目录/bbs。

必须注意:www上的服务器都是区分大小写的,因此千万要注意正确的URL大小写表达形式

URN-统一资源名称

什么是URN

URN,uniform resource name,统一资源命名,是经过名字来标识资源,好比mailto:java-net@java.sun.com

URN是URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,而且有可能减小失效链接的个数。可是其流行还需假以时日,由于它须要更精密软件的支持。

URi,URL,URN的区别与联系

URi:Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。

  其中,URL,URN是URi的子集
也就是说,URi 是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URi。
  Web上地址的基本形式是URi,它表明统一资源标识符。有两种形式:  URL:目前URi 的最广泛形式就是无处不在的URL或统一资源定位器。  URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,而且有可能减小失效链接的个数。可是其流行还需假以时日,由于它须要更精密软件的支持。  URi:以某种统一的(标准化的)方式标识资源的简单字符串。

相关文章
相关标签/搜索