URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠,但每个概念都强调了不同的方面。
-
URI(Uniform Resource Identifier):URI 是一个通用的术语,用于标识和定位资源。它是一个抽象的概念,可以包含 URL 和 URN。URI 强调了资源标识的唯一性和通用性,它可以用来唯一标识任何资源,无论是通过网络、本地文件系统还是其他方式。
-
URL(Uniform Resource Locator):URL 是 URI 的子类,它不仅标识资源,还提供了资源的访问方式。URL 包含了资源的位置信息和访问协议,可以用来定位和访问网络上的资源。URL 强调了资源的位置和访问方式,是 URI 中的一种具体实现。
-
URN(Uniform Resource Name):URN 也是 URI 的子类,它是用来为资源命名的,而不是提供资源的位置或访问方式。URN 的目标是为资源提供一个持久且唯一的名称,即使资源被移到不同的位置也不会改变其 URN。然而,URN 的实际应用相对较少,因为不同资源的命名和管理方式复杂且难以统一。
虽然 URL 和 URN 可以被视为 URI 的特定实现,但 URI 是一个更广泛的概念,强调了资源标识和定位的通用性。URL 解决了如何访问资源的问题,而 URN 解决了如何命名资源的问题。不同的使用场景和需求可能需要不同级别的资源标识和定位方式,因此 URI 作为一个通用的术语在这些概念之间起到了连接的作用。
举个例子来说:
- URI:
mailto:someone@example.com
- URL:
http://www.example.com/index.html
- URN:
urn:isbn:0451450523
(标识了一本书的 ISBN)