【问题标题】:Which ones are URLs? Which ones are URNs?哪些是 URL?哪些是 URN?
【发布时间】:2013-05-14 15:51:01
【问题描述】:

以下是 URI。但哪些是 URL?哪些是 URN?

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

【问题讨论】:

    标签: url uri urn


    【解决方案1】:

    来自RFC 3986 §1.1.3:

    术语“统一资源定位符”(URL) 是指 URI 的子集,除了标识资源外,还通过描述资源的主要访问机制(例如,其网络“位置”)提供定位资源的方法.术语“统一资源名称”(URN)在历史上一直用于指代“urn”方案 [RFC2141] 下的两个 URI,即使资源不再存在或变得不可用,它们也需要保持全局唯一和持久性,并且到具有名称属性的任何其他 URI。

    确切的区别包含在RFC 3305 §2 中,可以概括如下[翻译?]。

    统一资源标识符(URI)

    URI 是与RFC 3986 Appendix A 中描述的语法匹配的任何内容;它标识某种资源。有问题的资源可以是任何东西,从网页到电话号码到街道地址,从 JavaScript 到 GUID,通过 URI 开头的方案(第一个 : 之前的部分)消除歧义。

    如您所述,您的所有示例都是 URI。

    统一资源定位器(URL)

    URL 是一个 URI,它还告诉您如何访问它所描述的任何资源。这是一个非常非正式的概念(参见RFC 3305 §2.2),因此很难确定地定义。 (需要注意的是,根据我的经验,大多数公众在表示 URI 时会说 URL。)

    除了最后一个示例之外,所有示例可能都是一个 URL。 (不能确定区分;如上所述,URL 是非正式的。)有关为什么最后一个不是,请继续阅读,

    统一资源名称 (URN)

    由RFC 1737 和RFC 2141 定义的URN 是一种为某物赋予或多或少永久名称的方式。它有语法

    urn:<namespace>:<more :-separated parts>
    

    urn: 是方案名称(因此处理器知道它是 URN),&lt;namespace&gt; 是一种区分 [基本上] 不同人的 URN 和其余 URN [更多 @987654332 @-separated text] 标识该命名空间中的某些内容。 RFC 1737 §2 要求 URN 始终指向完全相同的事物永远。它还要求具有相应 URL 的 URN 必须有某种方式可以转换为该 URL;这似乎暗示 URN 不是 URL。

    您的最后一个样本 (urn:oasis:names:specification:docbook:dtd:xml:4.1.2) 属于 urn 方案;根据定义,它是一个 URN。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2015-12-09
      • 2011-08-28
      相关资源
      最近更新 更多