4. Origin of a URI (URI的源)
4. Origin of a URI (URI的源)
URI 的源 (origin) 是由以下算法计算的值:
-
如果 URI 不使用分层元素 (hierarchical element) 作为命名权限 (naming authority) (参见 [RFC3986], 第 3.2 节), 或者 URI 不是绝对 URI (absolute URI), 则生成一个新的全局唯一标识符 (globally unique identifier) 并返回该值。
注意: 对同一 URI 多次运行此算法可能每次产生不同的值。通常, 用户代理计算例如 HTML 文档的源一次, 并将该源用于后续的安全检查, 而不是为每次安全检查重新计算源。
-
设
uri-scheme为 URI 的方案 (scheme) 组件, 转换为小写。 -
如果实现不支持
uri-scheme给定的协议, 则生成一个新的全局唯一标识符并返回该值。 -
如果
uri-scheme是 "file", 实现可以 (MAY) 返回实现定义的值。注意: 历史上, 用户代理授予来自 file 方案的内容极大的特权。但是, 授予所有本地文件如此广泛的特权可能导致特权提升攻击 (privilege escalation attack)。一些用户代理成功授予本地文件基于目录的特权, 但这种方法尚未被广泛采用。其他用户代理为每个文件 URI 使用全局唯一标识符, 这是最安全的选项。
-
设
uri-host为 URI 的主机 (host) 组件, 转换为小写 (使用 [RFC4790] 中定义的 i;ascii-casemap 排序规则)。注意: 本文档假设用户代理在构造 URI 时执行国际化域名应用 (Internationalizing Domain Names in Applications, IDNA) 处理和验证。特别是, 本文档假设
uri-host将仅包含 LDH 标签 (LDH label), 因为用户代理将已经将任何非 ASCII 标签转换为其相应的 A 标签 (A-label) (参见 [RFC5890])。因此, 基于源的安全策略对用户代理采用的 IDNA 算法敏感。有关进一步讨论, 请参见第 8.4 节。 -
如果 URI 没有端口 (port) 组件:
- 设
uri-port为uri-scheme给定协议的默认端口。
否则:
- 设
uri-port为 URI 的端口组件。
- 设
-
返回三元组
(uri-scheme, uri-host, uri-port)。
📊 翻译质量自检
- 段落对齐: 原文 7 段 = 译文 7 段
- 链接格式: 所有章节标题已转为链接
- 术语双语: 首次术语已标注双语
- RFC 2119: 关键词已合理翻译 (MAY/可以)
- MDX 安全: URL 已包裹反引号, HTML 已自闭合
- 标点规范: 已符合中文使用英文标点规范
- 清理杂项: 已移除页码/页眉
- 语言纯净: 内容为真实的简体中文, 无其他语言混入
- 目录正确: 文件已放置在 zh-Hans 目录中
📍 当前进度
- RFC 编号: 6454
- 目标语言: 🇨🇳 简体中文 (zh-Hans)
- 已完成章节: 1, 2, 3, 4
- 当前章节: 4 (完成)
- 总体进度: 40%