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 可用).