Skip to main content

6. Serializing Origins (序列化源)

6. Serializing Origins (序列化源)

本节定义如何将源 (origin) 序列化为 Unicode [Unicode6] 字符串和 ASCII [RFC20] 字符串。

6.1 Unicode Serialization of an Origin (源的Unicode序列化)

源的 Unicode 序列化 (unicode-serialization) 是由以下算法返回的值:

  1. 如果源不是方案/主机/端口 (scheme/host/port) 三元组, 则返回字符串

    null

    (即, 代码点序列 U+006E, U+0075, U+006C, U+006C) 并中止这些步骤。

  2. 否则, 设 result 为源三元组的方案 (scheme) 部分。

  3. 将字符串 "://" 附加到 result

  4. 将源三元组的主机 (host) 部分的每个组件 (按如下方式转换) 附加到 result, 用 U+002E FULL STOP 代码点 (".") 分隔:

    1. 如果组件是 A 标签 (A-label), 则使用相应的 U 标签 (U-label) (参见 [RFC5890] 和 [RFC5891])。

    2. 否则, 逐字使用该组件。

  5. 如果源三元组的端口 (port) 部分与源三元组的方案部分给定协议的默认端口不同:

    1. 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到 result
  6. 返回 result

6.2 ASCII Serialization of an Origin (源的ASCII序列化)

源的 ASCII 序列化 (ascii-serialization) 是由以下算法返回的值:

  1. 如果源不是方案/主机/端口 (scheme/host/port) 三元组, 则返回字符串

    null

    (即, 代码点序列 U+006E, U+0075, U+006C, U+006C) 并中止这些步骤。

  2. 否则, 设 result 为源三元组的方案 (scheme) 部分。

  3. 将字符串 "://" 附加到 result

  4. 将源三元组的主机 (host) 部分附加到 result

  5. 如果源三元组的端口 (port) 部分与源三元组的方案部分给定协议的默认端口不同:

    1. 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到 result
  6. 返回 result


📊 翻译质量自检

  • 段落对齐: 原文 14 段 = 译文 14 段
  • 链接格式: 所有章节标题已转为链接
  • 术语双语: 首次术语已标注双语
  • RFC 2119: 关键词已合理翻译
  • MDX 安全: URL 已包裹反引号, HTML 已自闭合
  • 标点规范: 已符合中文使用英文标点规范
  • 清理杂项: 已移除页码/页眉
  • 语言纯净: 内容为真实的简体中文, 无其他语言混入
  • 目录正确: 文件已放置在 zh-Hans 目录中

📍 当前进度

  • RFC 编号: 6454
  • 目标语言: 🇨🇳 简体中文 (zh-Hans)
  • 已完成章节: 1, 2, 3, 4, 5, 6
  • 当前章节: 6 (完成)
  • 总体进度: 60%