首页 > 代码库 > 理解URI和URL

理解URI和URL

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="http://www.mamicode.com/suppliers.htm">Suppliers</A> 。它扩展成完全的URI就是 "http://www.acme.com/support/suppliers.htm"。

     

      URL一般由三部分组成

          第一部分是协议(或称为服务方式,如http,file等); 
          第二部分是存有该资源的主机IP地址(有时也包括端口号); 
          第三部分是主机资源的具体地址,如目录和文件名等。 

      个人感觉,与URI相比,其组成方式与URI差别不大,可能存在的差别在于相对URI时可以不知道方案名和主机名,此外,URI主要不是用于指定一个资源的位置,而是用来对这个资源进行定义。

      知乎上有人说

          URI可以表示一个域,也可以表示一个资源。

          URL只能表示一个资源。

      个人觉得有一定道理,但是仍然不能完全解释两者区别,后续还要继续研究。