HTTP 1.1代理是否支持HTTP2连接?低延迟代理实现的相关疑问
面向低延迟的HTTP代理实现与HTTP/2适配疑问
我正尝试实现一个面向低延迟的HTTP代理服务器。
据我了解,HTTP代理请求要么是设置了HOST头部指向目标地址的原始请求,要么是CONNECT请求,后者会将后续字节作为原始TCP连接转发。
因此我计划按以下逻辑实现:
- 读取到第一个空格为止。
- 如果是
CONNECT请求,解析请求头,建立到目标地址的TCP连接,返回响应头,之后双向转发后续数据。 - 否则,将完整请求数据并行转发至目标地址,并将完整响应数据并行返回给客户端。
这种方式可以覆盖HTTP 1.1和HTTPS连接,但我不确定是否适用于HTTP/2,存在以下疑问:
- 明文HTTP/2请求是通过原始请求还是
CONNECT请求发送?是否有标准或主流客户端实现对此作出保证? - HTTP/2连接包含多个流,可能对应多个
HOST地址。客户端是否会确保不同HOST的请求通过不同代理连接发送? - 客户端是否会假设指定的代理服务器不支持HTTP/2,并支持“HTTP/2 over HTTP 1.1代理”的场景?是否有标准或主流客户端实现对此作出保证?
我甚至找不到能解答这些问题的代理行为正式协议规范。
内容的提问来源于stack exchange,提问作者Alsein
相关产品推荐
相关产品推荐

