Skip to main content

1.2.1. 解析 (Resolution)

URN 特有的一个问题(与一般的命名系统相对)是相当困难的"解析"主题,在第 1.1 节、第 2.3.1 节、第 6.4.6 节和下文其他地方讨论。

对于传统的统一资源定位符 (Uniform Resource Locators, URL),即大多数作为定位器的 URI,解析相对简单,因为它用于确定访问机制,该机制又用于通过(通常)检索相关资源的表示(例如文档)来解引用定位器(参见 [RFC3986] 的第 1.2.2 节)。

相比之下,URN 的解析更加灵活和多样化。

一个重要的情况涉及将 URN 映射到一个或多个定位器。在这种情况下,最终结果仍然是将映射的定位器解引用到一个或多个表示的问题。这里的主要区别在于持久性:即使映射的定位器已更改(例如,DNS 域名易手并且 URL 未修改为指向新位置,或者在更极端和假设的情况下,DNS 完全被替换),只要解析器保持其 URN 到定位器映射的最新状态,URN 用户就能够获得正确的表示(例如文档)。因此,对于解析到定位器然后解引用到表示的 URN,可以非常精确地定义相关关系。

但是,本规范还允许 URN 解析的其他几种情况以及不涉及信息检索系统的资源的 URN。这对于特定 URN 单独适用,或者(如下所定义)对于整个 URN 命名空间集体适用。

考虑解析到定位器的 URN 命名空间,这些定位器又仅被解引用到关于资源的元数据,因为底层系统不包含这些资源的表示;一个例子可能是国际标准名称标识符 (International Standard Name Identifiers, ISNI) 的 URN 命名空间,如相关标准 [ISO.27729.2012] 中定义的标识符系统,其中默认情况下 URN 仅解析为描述由 ISNI 标识的公共身份的元数据记录。

还要考虑仅当请求实体被授权获取表示时才解析为表示的 URN,而其他实体只能获取关于资源的元数据;一个例子可能是国家图书馆法律保管收藏中持有的文档。

最后,某些 URN 可能根本不打算解析到定位器;示例可能包括标识 XML 命名空间名称的 URN(例如,[RFC6288] 指定的 "dgiwg" URN 命名空间)、标识可在通信协议内支持的应用程序功能的 URN(例如,[RFC7462] 指定的 "alert" URN 命名空间)以及标识枚举类型(例如注册表中的值)的 URN(例如,URN 命名空间可用于单独标识所有 IANA 注册表中的值,如 [IANA-URN] 中临时提议的那样)。

各种类型的 URN 及其可用的多种解析服务使得"解析"的概念比解析到定位器然后解引用到表示的简单情况更加复杂,但对于 URN 来说也更加丰富。