1)定义:
URI: Uniform Resource Identifier,通用资源标识符 ---是一个用于标识某一互联网资源名称的字符串(by 维基百科)
URL:Uniform Resource Locato,统一资源定位符
从关系上来看,URI属于父类,URL属于URI的子类。URL是URI的一个子集。URL一定是属于URI,反之不然二者的区别在于,URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。
2)命名规范:
URI一般由三部分组成:
访问资源的方案名 ( http
、 https
和 mailto等
)
存放资源的主机名(或者域名)
资源自身的名称,由路径表示
URI 路径像一个典型的文件路径名.下面就是一个典型的URI例子:
http://www.cisco.com/en/US/partners/index.htm
在上面的例子中,方案名为HTTP,主机名称为www.cisco.com。访问资源的路径为/en/US/partners/index.htm 。
除了上述方式外,还有一种相对URI。相对URI 不包含任何命名规范信息。它的路径通常指同一台机器上的资源。相对URI可能含有相对路径(如,“..”表示上一层路径)为了说明相对URI,假设我们有一个基本的URI http://www.acme.com/support/intro.htm 下面的链接中使用了相对URI: <A href="suppliers.htm">Suppliers</A> 。它扩展成完全的URI就是 "http://www.acme.com/support/suppliers.htm"。
URL一般由三部分组成
第一部分是协议(或称为服务方式,如http,file等);
第二部分是存有该资源的主机IP地址(有时也包括端口号);
第三部分是主机资源的具体地址,如目录和文件名等。
个人感觉,与URI相比,其组成方式与URI差别不大,可能存在的差别在于相对URI时可以不知道方案名和主机名,此外,URI主要不是用于指定一个资源的位置,而是用来对这个资源进行定义。
知乎上有人说
URI可以表示一个域,也可以表示一个资源。
URL只能表示一个资源。
个人觉得有一定道理,但是仍然不能完全解释两者区别,后续还要继续研究。