You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Indy 10.6.2代理服务器触发浏览器ERR_HTTP2_PROTOCOL_ERROR问题咨询

核心原因:Indy TIdHTTPProxyServer 原生不支持HTTP/2协议

Indy 组件库的官方稳定版目前仅支持HTTP/1.x协议解析,当前主流网站默认开启HTTP/2,浏览器会优先发起HTTP/2请求到代理,代理无法识别HTTP/2的二进制帧结构,只会按HTTP/1.x的文本报文格式解析,直接出现协议解析错误,浏览器收到异常响应就会抛出ERR_HTTP2_PROTOCOL_ERROR。

代码配置额外叠加问题
  • 缺少ALPN协议协商配置:HTTP/2需要在TLS握手阶段通过ALPN扩展协商h2协议标识,你当前使用的TIdSSLIOHandlerSocketOpenSSL没有添加ALPN相关配置,无法和上游服务端完成HTTP/2协议协商,握手后服务端返回的HTTP/2帧会被代理直接判定为非法报文。
  • TLS版本支持不足:你配置的SSL版本仅覆盖到TLS 1.2,当前大量HTTP/2站点强制要求TLS 1.3及以上版本,你使用的OpenSSL 1.0.2.18本身不支持TLS 1.3,无法满足站点的TLS版本要求,握手失败后也会触发协议错误。
  • PassThrough配置逻辑冲突:你设置了tempIO.PassThrough := True透传TLS报文,但Indy代理的前置逻辑依然会尝试解析请求头为HTTP/1.x格式,二进制的HTTP/2帧会被判定为非法请求直接中断连接。
临时规避方案

可以通过强制浏览器禁用HTTP/2验证问题,比如Chrome浏览器启动时添加启动参数--disable-http2,此时所有请求都走HTTP/1.1协议,代理可正常处理。如果要正式支持HTTP/2,需要替换Indy的代理组件,或者二次开发Indy的HTTP解析逻辑添加HTTP/2帧处理能力。

内容的提问来源于stack exchange,提问作者Realbitt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 21:06:04