URL、URN、URI的区别?

URL、URN、URI区别

既然Web应用程序的文件等资源是放在服务器上,而服务器是因特网(Internet)上的主机,当然必须要有个方法,告诉浏览器到哪里取得文件等资源。通常会听到有人这么说:“你要指定URL”,偶尔会听到有人说:“你要指定URI”。那么到底什么是URL、URI?甚至你还听过URN。首先,三个名称都是缩写,其全名分别为:

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

从历史的角度来看,URL的标准最先出现,早期U代表Universal(万用),标准化之后代表着Uniform(统一)。正如名称所指出,URL的主要目的,是一文字方式来说明因特网上的资源如何获得。一般而言,URL的主要格式为:

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

协议(scheme)指定了以何种方式取得资源。一些协议名的例子有:

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

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

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

举例来说,若资源放置在HTTP服务器上,如图1.2所示:

若主机名为 openhome.cc,要以HTTP协议取得 Gossip 目录中的 index.html文件,端口号 8080,则必须使用以下URL(如图 1.3所示):

http://openhome.cc:8080/Gossip/index.html

又假设想取得计算机文件系统中 C:workspace 下的jdbc.pdf 文件,则可以指定如下URL格式:

file://C:/workspace/jdbc.pdf

简而言之,URL代表资源的地址信息,URN则代表某个资源独一无二的名称。举个例子来说,“JSP&Servlet学习笔记(第2版)”的国家标准书号(International Standard Book Number,ISBN)为 ISBN 978-7-302-28366-9,这就是URN的一个例子。

由于URLURN的目的,都是用来标识某个资源,后来的标准指定了URI,而URLURN成为URI的子集。在一些标准机构,如W3C(World Wide Web Consortium)文件中,后来就也多使用URI这个名词,不过许多人已习惯用URL,所以URL这个名词仍广为使用,程序员口语交谈也多见使用URL这个旧称。

如果想对URL、URI 与 URN 的历史演进与标准发布作更多的了解,可以参考Wikipedia(http://www.wikipedia.org/)的Uniform Resource Identifier:

http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

原文地址:https://www.cnblogs.com/52php/p/5677645.html