• URI、URL 和 URN 的区别


    URI、URL 和 URN 这三个缩略词是 Tim Berners-Lee在一篇名为RFC 3986: Uniform Resource Identifier (URI): Generic Syntax的文档中定义的互联网标准追踪协议。

      统一资源标识符(URI)提供了一个简单、可扩展的资源标识方式。URI规范中的语义和语法来源于万维网全球信息主动引入的概念,万维网从1990年起使用这种标识符数据,并被描述为“万维网中的统一资源描述符”。

      

       Tim Berners-Lee ,万维网的发明者,同时也是万维网联盟(W3C)的负责人。

        照片由 Paul Clarke 遵循CC BY-SA 4.0 协议提供。

     URI 

      1、URI 是什么

        URI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。

      2、URI 的结果组成

        URI 通常由三部分组成:

         ① 访问资源的命名机制

         ② 存放资源的主机名

         ③ 资源自身的名称

      3、URI 举例

    https://blog.csdn.net/qq_32595453/article/details/79516787    

        可以这样解释它: 

        ① 这是一个可以通过 https 协议访问的资源;

        ② 位于主机 blog.csdn.net 上;

        ③ 通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径);

        注意:以上三点只不过是对实例的解释,以上三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以了。

     URL

      1、URL 是什么

          URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。

          通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。

          采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL是URI概念的一种实现方式。

      2、URL 的格式

        URL的一般格式为(带方括号[]的为可选项):

    protocol :// hostname[:port] / path / [;parameters][?query]#fragment

        URL的格式由三部分组成: 

          ①第一部分是协议(或称为服务方式)。

          ②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

          ③第三部分是主机资源的具体地址,如目录和文件名等。

          第一部分和第二部分用“://”符号隔开,

          第二部分和第三部分用“/”符号隔开。

          第一部分和第二部分是不可缺少的,第三部分有时可以省略。 

     URN

        URN Uniform Resource Name(统一资源命名),作为特定内容的唯一名称使用的,与当前资源的所在地无关。使用URN,就可以将资源四处迁移,而不用担心迁移后无法访问。P2P下载中使用的磁力链接是URN的一种实现,它可以持久化的标识一个BT资源,资源分布式的存储在P2P网络中,无需中心服务器用户即可找到并下载它。

      区别

        首先我们要弄清楚一件事:URL和URN都是URI的子集。

        换言之,URL和URN都是URI,但是URI不一定是URL或者URN。为了更好的理解这个概念,看下面这张图片。

        

         通过下面的例子(源自 Wikipedia),我们可以很好地理解URN 和 URL之间的区别。如果是一个人,我们会想到他的姓名和住址。

        URL类似于住址,它告诉你一种寻找目标的方式(在这个例子中,是通过街道地址找到一个人)。要知道,上述定义同时也是一个URI。

        相对地,我们可以把一个人的名字看作是URN;因此可以用URN来唯一标识一个实体。

        由于可能存在同名(姓氏也相同)的情况,所以更准确地说,人名这个例子并不是十分恰当。更为恰当的是书籍的ISBN码和产品在系统内的序列号,尽管没有告诉你用什么方式或者到什么地方去找到目标,但是你有足够的信息来检索到它。

        所有的URN都遵循如下语法(引号内的短语是必须的):

    < URN > ::= "urn:" < NID > ":" < NSS >

        其中NID是命名空间标识符,NSS是标识命名空间的特定字符串。

      用于理解三者的例子

        关于URL:

    URL是URI的一种,不仅标识了Web 资源,还指定了操作或者获取方式,同时指出了主要访问机制和网络位置。

        关于URN:

    URN是URI的一种,用特定命名空间的名字标识资源。使用URN可以在不知道其网络位置及访问方式的情况下讨论资源。

        

        来看下面这个虚构的例子。这是一个 URI:

    http://bitpoetry.io/posts/hello.html#intro

        分析:

    http://                                         是定义如何访问资源的方式

    bitpoetry.io/posts/hello.html      是资源存放的位置

    #intro                                         在这个例子,#intro 就是资源。  

      

      URL是URI的一个子集,告诉我们访问网络位置的方式。如:

    http://bitpoetry.io/posts/hello.html

      URN是URI的子集,包括名字(给定的命名空间内),但是不包括访问方式,如下所示:

    bitpoetry.io/posts/hello.html#intro    

      URI可以被分为URL、URN或两者的组合。

      

      形象的比喻:

      “URI可以分为URL,URN或同时具备locators 和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的身份,URL提供了找到它的方式。”

  • 相关阅读:
    HDU 3586 二分答案+树形DP判定
    POJ 3140 树形DP
    POJ 1741 树的点分治
    POJ 1655 求树的重心
    CF 219D 树形DP
    HDU 2196树形DP(2个方向)
    HDU 1520 树形DP入门
    POJ 1159 Palindrome(最长公共子序列)
    树状数组 区间更新 区间查询
    HDU 1556 BIT区间修改+单点查询(fread读入优化)
  • 原文地址:https://www.cnblogs.com/niujifei/p/12426682.html
Copyright © 2020-2023  润新知