URL、URN、URI区别与比较



URL、URN、URI区别

我们都知道Web应用程序的文件等资源是放在服务器上的,而服务器又是因特网上的主机,所以必须要有个方式,告诉浏览器到哪个主机的哪个位置去取得资源文件。可能你会说“需要指定URL”、“需要制定URI”,甚至“需要指定URN”。那URL、URI、URN到底是啥呢?

URL、URN、URI这三个名词都是缩写,其全名分别为:

 

  • URL:Uniform Resource Locator
  • URN: UniformResource Name
  • URI:Uniform Resource Identifier

 

为了标识互联网上的资源,首先出现的是URL这个名词。早期的U代表Universal(万用),标准化之后代这Uniform(统一)。正如名称所指,URL的主要目的,是以文字的方式来说明互联网上的资源如何取得。一般而言,URL的主要格式为:

<协议>:<协议特定部分>

协议(scheme)指定了了以何种方式取得资源,常见的协议名有:

 

  • ftp:文件传输协议, File Transfer Protocol
  •  http:超文本传输协议,HyperText Transfer Protocol
  • mailto:电子邮件
  • file:特定主机文件名

 


协议之后跟随冒号,特定协议部分的格式则为:

 

  • <用户>:<密码>@<主机>:<端口号>/<路径>
  • <域名>/<路径>

 

例如,http://channel.jd.com/fashion.html表示,我们要取得“channel.jd.com”所指向的服务器的某个位置下,名称为fashion.html的文件。

再比如,我要取得计算机C盘下test文件下下的log.txt文件,则URL格式为file://C:/test/log.txt

简而言之,URL代表资源的地址信息,而URN代表什么呢?URN是在URL出现之后被定义的,它代表互联网上某个资源独一无二的名称。

我们发现使用URL的方式来标识互联网上的资源不仅麻烦,而且不容易记录,例如我们要找互联网上某个服务器上的某个文件夹下的某本电子书,而这本电子书在其他服务器上可能也会存在,即在互联网上好多服务器都存着这本电子书,那这本电子书就会有很多URL与其对应,但是这本电子书的内容都是一样的,所以这个时候就需要一个标识,用来说明这本电子书无论在哪个服务器上,它都是一样的,这个标识就叫URN。

再举个例子,某本书的国际标准书号(International Standard Book Number, ISBN)为ISBN987-7-525-25633-9,这就是URN的一个例子。这有点类似与现在的MD5值,每个文件都有其独一无二的MD5值。

由于URL或URN的目的,都是用来标识某个资源,后来制定了URI,用来统一URL和URN。在一些标准机构如W3C(World Wide Web Consortium)文件中,大多使用URI这个名词来标识资源。不过许多人已习惯使用URL,所以URL仍是最常用的资源标识方式。