现在的位置: 首页 > 综合 > 正文

HTTP学习小结1 – 关于URI,URL和URN的说明

2013年08月11日 ⁄ 综合 ⁄ 共 908字 ⁄ 字号 评论关闭

       URI是统一资源描述符(Uniform Resource Identifier),它是一种用于描述互联网上资源的一种机制。我们知道每个Web服务器资源都有一个名字,这样其他客户端需要该资源的时候就引用和获取了,URI就像是因特网上的邮政地址一样,在全世界范围内都可以唯一的标识并定位信息资源。

       URI包括了两种主要的形式 - URL和URN,其中URL是统一资源定位符(Uniform Resource Locator),它是URI最常见的形式,URL描述了一台服务器上某类资源的特定位置。

相比URN,URL能够明确的说明如何从一个精确的位置获取什么类型的资源。URL的表现形式如下:

      <schema>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

      从这个表现形式可以发现:URL必须对应了物理上某个存在的资源,它的表现形式能够明确的指出:

     1,如何获取资源,即通过什么协议获取 - schema;

     2,获取的用户识别 - user:password;

     3,资源具体在什么地方 - host:port, path

     4,获取资源的更细粒度的定位 - query#frag等

  

      URN是URI的另外一种形式 ,他/她叫统一资源名(Uniform Resource Name),URN才是真正意义上的资源名字,它并不说明如何获取资源以及资源是存在在什么地方的,这个是由其他的服务层进行的,它只是对资源进行统一命名,是一种名字服务,以位置无关,这样的好处非常明显:即解耦资源的名字和它所在位置的关系,不像URL,如果资源的位置发生变化,则对应URL可能变得无效了,而URN则不会因为资源具体位置的变化而出现失效的情况。另外一个好处是:还可以用统一名字通过多种不同的网络协议进行访问资源。

      因此,从某种意义上看,URN才是真正意义上的资源定位符,它解决了命名跟位置和访问协议之间的耦合关系。URN具有如下的形式:

      urn:ietf:rfc:xxxxx

      目前URN仍然处于试验阶段。

    

抱歉!评论已关闭.