从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),因此很难确定。 (应该注意的是,根据我的经验,大多数公众在说到URL时指出的是URL。)
除了最后一个样品外,其余的都是,可能是的一个URL。 (区别不能对某些进行;如上述,网址是非正式的)更多关于为什么最后一个不是,请继续阅读,
统一资源名称(URN)
的URN,如RFC 1737和RFC 2141所定义的,是一种给某种东西赋予或多或少永久名称的方式。它具有语法
urn:<namespace>:<more :-separated parts>
其中urn:
是方案名称(以便处理器知道这是一个URN),该<namespace>
告诉分开[基本]不同民族的URN的一种方式,而URN其余[更多:
-separated text]标识该名称空间内的某些内容。 RFC 1737 §2要求URN 总是指向完全相同的东西永远。它还要求具有相应的URL的URNs 必须有一些方法可以被翻译成该URL;这似乎意味着URN不是URL。
您的最后一个样本(urn:oasis:names:specification:docbook:dtd:xml:4.1.2
)是urn
方案;根据定义,它是一个URN。