PTTH:让 HTTP 请求“反向流动”的新协议
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
当后端服务躲在防火墙和 NAT 之后,却又希望由统一的反向代理对外暴露时,传统 HTTP 的“客户端发起连接、服务器被动响应”模式就会变得笨拙。 PTTH(Protocol for Transposed Transactions over HTTP)是 IETF 正在推进的一种 HTTP 扩展协议。它的核心目标很简单:在一条已经建立的连接上,把 HTTP 请求的发送方向“转置”过来,让原本作为传输层客户端的一方,可以在 HTTP 层面充当服务器,接收来自另一方的请求。 为什么需要“转置”HTTP 请求方向在经典 HTTP 架构中:
这在公网服务上工作良好,但在以下场景中会遇到问题:
目前业界通常用各种“反向 HTTP”“服务器推送”“长轮询”“WebSocket 隧道”等方案临时解决,但缺乏统一标准,互操作性和安全模型也不一致。 PTTH 试图在 HTTP 协议层提供一个标准化、可互操作、安全可控的机制,让“服务器主动向客户端发 HTTP 请求”变成一种原生能力,而不是 hack。 PTTH 的核心思想PTTH 的设计可以用一句话概括:
从角色上看:
PTTH 不改变底层传输(TCP/TLS/QUIC),也不重新发明一套应用协议,而是在现有 HTTP 之上增加一种“角色转置”的协商机制。 典型应用场景1. 零信任网络访问(ZTNA)企业内部服务不希望开放任何公网入站端口,只允许被少数可信反向代理访问。
这样,内网服务始终只保持出站连接,却可以对外提供标准 HTTP 服务。 2. CDN / 边缘回源CDN 边缘节点需要动态从源站拉取内容,或下发控制指令,但源站位于受限网络。
3. 动态容器与 Serverless容器或函数实例短暂存在、IP 不固定,不适合被外部直接寻址。
4. 统一出口与集中治理企业希望所有对外服务都经过少量统一反向代理,实现集中鉴权、审计、限流和 WAF。
协议机制概览以下以 HTTP/2 或 HTTP/3 为例,描述 PTTH 的高层流程(具体细节以 IETF 草案为准): 1. Worker 主动连接 ProxyWorker 作为传输层客户端,向反向代理发起 TCP/TLS 或 QUIC 连接。 2. 使用扩展 CONNECT / Upgrade 协商 PTTH
这一步相当于告诉 Proxy:“我希望在这条连接上建立一个 PTTH 转置通道。” 3. Proxy 认证并建立转置通道Proxy 对 Worker 进行身份验证,可能包括:
验证通过后,Proxy 将该连接标记为 PTTH 通道,并记录该 Worker 可以接收哪些路径或域名的请求。 4. 在转置通道上发送 HTTP 请求建立完成后:
从应用视角看,这就像 Proxy “反向调用”了 Worker 的 HTTP 接口,而无需 Worker 开放任何入站端口。 设计目标与约束根据 IETF 草案,PTTH 的设计重点包括:
与现有“反向 HTTP”方案的区别“让服务器向客户端发请求”的想法并不新鲜,过去有多种实验性方案:
PTTH 的不同点在于:
此外,还有一些相关草案(如 “Potato – Reverse HTTP for origin servers”)从不同角度探索类似空间,PTTH 希望在这些探索中收敛出一个共识方案。 当前标准化进展(截至 2026 年中)
风险与挑战尽管 PTTH 的概念清晰,但落地仍面临一些现实问题:
一句话总结PTTH 是一种拟标准化的 HTTP 扩展协议,通过在已有连接上“转置”请求方向,让位于防火墙后的后端服务可以安全、低开销地接受来自反向代理的 HTTP 请求,从而用统一标准替代当前多种私有的“反向 HTTP”方案。 阅读原文:点击这里 该文章在 2026/9/9 11:06:02 编辑过 |
关键字查询
相关文章
正在查询... |