哪些是URL?哪些是URN?

时间:2013-05-20 06:13:17

标签: url uri urn

以下是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

1 个答案:

答案 0 :(得分: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 1737RFC 2141定义的URN是一种给某事物提供或多或少的永久名称的方式。它具有语法

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

其中urn:是方案名称(因此处理器知道它是URN),<namespace>是一种区分[基本上]不同民族的URN和URN的其余部分的方式[更多: - 分隔文本]标识该命名空间中的内容。 RFC 1737 §2要求URN 总是指向永远完全相同的东西。它还要求具有相应URL 的URN 必须有某种方式转换为该URL;这似乎意味着URN不是URL。

您的上一个示例(urn:oasis:names:specification:docbook:dtd:xml:4.1.2)属于urn计划;根据定义,它是一个URN。