Skip to main content

7. The HTTP Origin Header Field (HTTP Origin头部字段)

7. The HTTP Origin Header Field (HTTP Origin头部字段)

本节定义 HTTP Origin 头部字段 (header field)。

7.1 Syntax (语法)

Origin 头部字段具有以下语法:

origin              = "Origin:" OWS origin-list-or-null OWS
origin-list-or-null = %x6E %x75 %x6C %x6C / origin-list
origin-list = serialized-origin *( SP serialized-origin )
serialized-origin = scheme "://" host [ ":" port ]
; <scheme>, <host>, <port> from RFC 3986

7.2 Semantics (语义)

当包含在 HTTP 请求中时, Origin 头部字段指示"导致 (caused)"用户代理发出请求的源 (origin), 如触发用户代理发出请求的 API 所定义的那样。

例如, 考虑一个代表源执行脚本的用户代理。如果其中一个脚本导致用户代理发出 HTTP 请求, 则用户代理可以 (MAY) 使用 Origin 头部字段向服务器通知脚本在导致用户代理发出请求时执行的安全上下文 (security context)。

在某些情况下, 多个源会促成导致用户代理发出 HTTP 请求。在这些情况下, 用户代理可以 (MAY) 在 Origin 头部字段中列出所有源。例如, 如果 HTTP 请求最初由一个源发出, 但后来被另一个源重定向, 则用户代理可以 (MAY) 通知服务器有两个源参与导致用户代理发出请求。

7.3 User Agent Requirements (用户代理要求)

用户代理可以 (MAY) 在任何 HTTP 请求中包含 Origin 头部字段。

用户代理绝对不能 (MUST NOT) 在任何 HTTP 请求中包含多个 Origin 头部字段。

每当用户代理从"隐私敏感 (privacy-sensitive)"上下文发出 HTTP 请求时, 用户代理必须 (MUST) 在 Origin 头部字段中发送值 "null"。

注意: 本文档不定义隐私敏感上下文的概念。生成 HTTP 请求的应用程序可以将上下文指定为隐私敏感, 以对用户代理如何生成 Origin 头部字段施加限制。

在生成 Origin 头部字段时, 用户代理必须 (MUST) 满足以下要求:

  • 语法中的每个 serialized-origin 产生式必须 (MUST) 是源的 ASCII 序列化 (ascii-serialization)。

  • 语法中不能有两个连续的 serialized-origin 产生式是相同的。特别是, 如果用户代理将生成两个连续的序列化源 (serialized-origin), 则用户代理绝对不能 (MUST NOT) 生成第二个。


📊 翻译质量自检

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

📍 当前进度

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