问题标签 [alpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

java - OkHttpClient 如何通过 http2 与不支持 ALPN 的服务器建立 TLS 连接?

我正在使用 OkHttpClient 3.14.9。我需要使用 TLSv1.3 和 http2 协议建立连接。问题是服务器不支持 ALPN(OkHttpClient 使用这个扩展与服务器建立使用哪个版本的 http 协议)。

在服务器端 http1.1 被禁用,只有 http2 被启用。客户端没有成功建立连接。当服务器启用 http1.1 时,我的客户端通过 http1.1 连接到服务器。

据我了解,这意味着客户端和服务器之间没有关于http版本的协商:客户端正在尝试通过ALPN进行协商->服务器不“理解”客户端->客户端认为服务器不支持http2并尝试连接http1.1

那么,如果不是 ALPN,OkHttpClient 是否有其他方法可以通过 http2 建立 TLS 连接?(重要的是连接是 TLS,因为没有 TLSProtocol.H2_PRIOR_KNOWLEDGE效果很好)