URI包括URL和URN
URI 能唯一表示资源
,URL 则是以资源路径
来表示资源,URN 则是根据名称(可能附带来源&ID)
来表示资源
一、URI
1.什么是URI
URI,统一资源标志符(Uniform Resource Identifier, URI),用来标识抽象或物理资源的一个紧凑字符串。通过使用位置,名称或两者来标识Internet上的资源;它允许统一识别资源。
URI通常不会包含获取资源的方式,表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的,是一种抽象的概念。
2.URI的结构组成
URI通常由三部分组成:
资源的命名机制;
存放资源的主机名;
资源自身的名称。可以对该资源进行唯一标识(注意,这个不一定是完整的路径)
注意:这只是一般URI资源的命名方式,只要是可以唯一标识资源的都被称为URI,上面三条合在一起是URI的充分不必要条件,以上三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以了。
3.URI格式
[协议名]://[用户名]:[密码]@[主机名]:[端口号]/[路径]?[查询参数]#[片段ID]
二、URL
1.什么是URL
URL : Universal Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串,用于指示资源的位置以及用于访问它的协议。通俗来说,就是对于某种web资源的引用,并且包含了如何获取该资源的方式。
最常见到的场景就是指一个网站的地址。URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL是URI概念的一种实现方式。
2.URL的格式由三部分组成:
第一部分是协议(或称为服务方式)。
第二部分是存有该资源的主机IP地址(有时也包括端口号)。
第三部分是主机资源的具体地址,如目录和文件名等。
第一部分和第二部分用“://”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。
3.URL的格式
一般格式为(带方括号()的为可选项):
protocol :// hostname(:port) / path / (;parameters)(?query)#fragment
标准格式
[协议类型]://[服务器位置IP]:[端口]/[资源层级路径][资源名称]?[查询参数]#[片段ID]
完整格式
[协议类型]://[存取凭证]@[服务器位置IP]:[端口]/[资源层级路径][资源名称]?[查询参数]#[片段ID]
URL常见的协议
1.http:超文本传输协议,访问的是远程的网络资源,格式是http://
http协议是在网络开发中最常用的协议
https协议相当于是http协议的安全版
2.file
访问的是本地计算机上的资源,格式是file://(不用加主机地址)
3.mailto
访问的是电子邮件地址,格式是mailto:
4.ftp
访问的是共享主机的文件资源,格式是ftp://
5.ed2k
通过支持ed2k(专用下载链接)协议的P2P软件访问该资源(代表软件:电驴),格式是ed2k://
6.thunder
通过支持thunder(专用下载链接)协议的P2P软件访问该资源(代表软件:迅雷),格式是thunder://
三、URN
URN : Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。URN 用名称定位。常见于论文索引。
格式:urn:[NID]:[NSS]
NID 命名空间:可以看作是资源的命名方式,例如 isbn、isan、issn、ietf:rfc、mpeg:mpeg7:schema
NSS 序号:根据 NID 的不同代表不同的意义,如:
isbn:此时 NSS 表示书号(book number)
isan:此时 NSS 表示媒体编号(audiovisual number)
issn:此时 NSS 表示序列号(serial number)
ietf:rfc:此时 NSS 表示IEFT RFC 论文
mpeg:mpeg7:schema:此时 NSS 表示MPEG-7 视屏类型
四、URI和URL之间的区别
从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。
对uri可以认为只是唯一识别的编号,类似于大家的身份证号,而url就是身份证住址+姓名,只要能唯一标识资源的就是URI,在URI的基础上给出其资源的访问方式的就是URL