正向代理如何处理自定义 API 请求头
跟随 API 版本字段经过普通转发、逐跳 Connection 规则以及显式配置的请求头策略。
API 可以把版本放在 API-Version 这样的自定义请求字段里。普通的转发代理不应仅仅因为字段名陌生就把它丢弃。HTTP 要求转发无法识别的字段,除非适用已定义的例外或已配置的策略。
Connection 字段就是这类例外之一。请比较下面这两个示例请求:
API-Version: 2026-10
Connection: keep-alive
这里 API 字段并未被声明为仅限本条连接。在下一个示例中,发送方明确改变了它的作用范围:
API-Version: 2026-10
Connection: API-Version
转发代理会在转发之前删除 Connection 中列名的字段,并删除或替换连接专有的指令本身。因此,面向源服务器的应用请求头不应出现在该令牌列表中。
找出字段发生变化的位置
对比客户端构造的请求、代理接收并发出的字段,以及源服务器收到的内容。客户端可能在代理看到之前就省略某个请求头;已配置的过滤器可能有意将其删除;服务器可能因超出请求头限制而拒绝请求。
不要仅凭旧部署中报告过的请求头大小阈值,就断定发生了静默剥离。限制与拒绝行为取决于实际组件和配置。请把 HTTP 响应和相关日志与观察结果一并保留。
对于普通 CONNECT 隧道内的端到端 HTTPS,代理无法读取并有选择地删除内层 API 字段。此时请求头检查属于 TLS 端点,或属于明确可信的检查中间层。