11.7. 分隔符字符的组合 (Combinations of Delimiter Characters)
为 IPv6 地址定义了其他类型的分隔符字符。在本小节中,我们描述它们应该如何与非全局地址的格式组合。
IPv6 地址架构 [1] 还定义了 IPv6 前缀的语法。如果前缀的地址部分是非全局的并且其作用域区域应该消除歧义,则地址部分应该 (SHOULD) 采用该格式。例如,第二个链路上的链路本地前缀 fe80::/64 可以表示如下:
fe80::%2/64
在这种组合中,当我们考虑通过名称到地址库函数 [11] 解析格式时,将区域索引部分放在前缀长度之前很重要。也就是说,我们可以首先将带有区域索引的地址与前缀长度分开,然后将前者传递给库函数。
URL 中文字 IPv6 地址的首选格式也已定义 [12]。当用户键入 IPv6 非全局地址的首选格式(其区域应明确指定)时,用户可以使用非全局地址的格式与首选格式相结合。
但是,键入的 URL 通常在线路上发送,如果应用程序在发送之前没有删除 <zone_id> 部分,则会导致混淆。请注意,应用程序不应该关心它们使用的是哪种地址,更不用说解析或删除地址的 <zone_id> 部分了。
此外,非全局地址的格式可能与 URI 语法 [13] 冲突,因为该语法将分隔符字符(%)定义为转义字符。这种冲突需要例如将区域 1 的 <zone_id> 部分与分隔符表示为 '%251'。这也意味着我们不能简单地从其他源复制未转义的格式作为 URI 解析器的输入。此外,如果 URI 解析器在将转义格式传递给名称到地址库之前没有转换它,转换将失败。所有这些问题都会降低本节中描述的文本表示的好处。
因此,本文档没有指定如何将非全局地址的格式与文字 IPv6 地址的首选格式组合。无论如何,建议在 URL 中使用 FQDN 而不是文字 IPv6 地址(只要有 FQDN 可用)。