6. Serializing Origins (序列化源)
6. Serializing Origins (序列化源)
本节定义如何将源 (origin) 序列化为 Unicode [Unicode6] 字符串和 ASCII [RFC20] 字符串。
6.1 Unicode Serialization of an Origin (源的Unicode序列化)
源的 Unicode 序列化 (unicode-serialization) 是由以下算法返回的值:
-
如果源不是方案/主机/端口 (scheme/host/port) 三元组, 则返回字符串
null(即, 代码点序列 U+006E, U+0075, U+006C, U+006C) 并中止这些步骤。
-
否则, 设
result为源三元组的方案 (scheme) 部分。 -
将字符串 "://" 附加到
result。 -
将源三元组的主机 (host) 部分的每个组件 (按如下方式转换) 附加到
result, 用 U+002E FULL STOP 代码点 (".") 分隔:-
如果组件是 A 标签 (A-label), 则使用相应的 U 标签 (U-label) (参见 [RFC5890] 和 [RFC5891])。
-
否则, 逐字使用该组件。
-
-
如果源三元组的端口 (port) 部分与源三元组的方案部分给定协议的默认端口不同:
- 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到
result。
- 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到
-
返回
result。
6.2 ASCII Serialization of an Origin (源的ASCII序列化)
源的 ASCII 序列化 (ascii-serialization) 是由以下算法返回的值:
-
如果源不是方案/主机/端口 (scheme/host/port) 三元组, 则返回字符串
null(即, 代码点序列 U+006E, U+0075, U+006C, U+006C) 并中止这些步骤。
-
否则, 设
result为源三元组的方案 (scheme) 部分。 -
将字符串 "://" 附加到
result。 -
将源三元组的主机 (host) 部分附加到
result。 -
如果源三元组的端口 (port) 部分与源三元组的方案部分给定协议的默认端口不同:
- 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到
result。
- 将 U+003A COLON 代码点 (":") 和给定端口 (以十进制表示) 附加到
-
返回
result。
📊 翻译质量自检
- 段落对齐: 原文 14 段 = 译文 14 段
- 链接格式: 所有章节标题已转为链接
- 术语双语: 首次术语已标注双语
- RFC 2119: 关键词已合理翻译
- MDX 安全: URL 已包裹反引号, HTML 已自闭合
- 标点规范: 已符合中文使用英文标点规范
- 清理杂项: 已移除页码/页眉
- 语言纯净: 内容为真实的简体中文, 无其他语言混入
- 目录正确: 文件已放置在 zh-Hans 目录中
📍 当前进度
- RFC 编号: 6454
- 目标语言: 🇨🇳 简体中文 (zh-Hans)
- 已完成章节: 1, 2, 3, 4, 5, 6
- 当前章节: 6 (完成)
- 总体进度: 60%