摘要
ORIGIN帧允许 HTTP/2 服务端说明兼容客户端可把哪些源站与当前连接关联。- 源站进入 Origin Set 仍不够;连接必须通过针对该源站的证书校验,帧本身不能赋予它代表源站的资格。
- 帧的效力属于具体连接并逐跳处理;错误条目、代理转来的帧以及出现在错误流或协议上的帧都应被忽略。
- 合格的连接复用证明应关联有效帧、精确源站、证书判断、客户端选择、请求结果和任何
421移除事件。
设想共享边缘节点发送一帧 ORIGIN,其中列出第二个 HTTPS 服务。部署仪表盘在抓包中看到该名称,便取消该服务的独立连接测试。然而共享连接的证书并不包含第二个服务名。该客户端因此拒绝复用并另开连接。在一项独立的陈旧状态测试中,另一客户端实例仍通过旧连接发送请求,收到 421 Misdirected Request。帧确实存在,但该连接代表第二个源站的条件并未成立。
这是虚构的运行轨迹,并非具名事故。错误在于把服务端声明、客户端权限判断和请求结果合并成一个绿色指标。
帧改变的是连接级集合
RFC 8336 把 ORIGIN 定义为初始化或修改兼容客户端 Origin Set 的 HTTP/2 扩展。每个条目都是一个精确源站的 ASCII 序列化值,不是通配符、重定向或新的资源身份。
该帧必须位于流 0,并用于 h2 或明确采用它的协议;在 h2c 上应忽略。它是非关键扩展,不支持的端点可以忽略。它还必须逐跳处理:中间设备不得转发,配置为使用代理的客户端应忽略来自代理的 ORIGIN 帧。没有连接、协议、流和发送者上下文的抓包,不能证明客户端处理了它。
无法解析的条目会被忽略。ORIGIN 不支持通配名称,每个预期源站都要明确列出。因此通配证书的覆盖范围与 Origin Set 是两套规则不同的清单。
进入集合不等于有权代表源站
集合初始化后会限制连接合并:兼容客户端不得认为该连接有权代表列表外的源站。但列在其中也不是充分条件。RFC 8336 仍要求服务端提交通过适当检查的证书,包括源站主机名与证书 subjectAltName 的匹配。
RFC 9110 同样把 HTTPS 权限绑定到成功建立的安全连接和客户端信任的源站证书。ORIGIN 条目不能铸造信任、扩展证书名称或豁免客户端策略。
这也不同于 R064:Alt-Svc 推荐另一服务路径,ORIGIN 描述一条连接所关联的源站。RFC 8336 明确指出,替代服务通告不会改变 Origin Set,也不会决定服务端权限。
连接期间的权限仍会变化
后续有效帧可以增加条目。421 Misdirected Request 会让兼容客户端从集合中移除对应请求的源站。因此较早的服务端声明不是连接全生命周期的永久授权。
客户端有时可以不查询 DNS,但 RFC 8336 指出这会增加风险,并要求用其他方式对证书合法性建立高度信心。这是策略选择,不是所有客户端行为一致的证明。
用连接授权证据记录关闭变更:记录连接身份、协商协议、流、帧字节、发送者、解析结果和有序 Origin Set;对每个源站关联证书链、信任结果、精确 SAN 匹配、DNS 结果或其他能够确认证书合法性的证据、复用决策、请求结果以及 421 移除。结论只覆盖已观察的客户端群体和时间窗口。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

