「Modernizing HTTP Forward Proxy Functionality」という仕様がIETFに提出されています。
これは、CONNECTメソッドを使った今までのForward Proxyの機能を、新しい(モダン)なしくみに置き換える提案です。HTTP/2やHTTP/3上でHTTP以外のデータをやり取りする場合は、拡張CONNECTの仕組みを使うのが一般的です。例えば、HTTPを介してUDPパケットをProxyするCONNECT-UDPなどもこの拡張CONNECTを使っています。
この拡張CONNECTのアイディアをもとに、今までのCONNECTにバックポートするというのが今回の「Modernizing HTTP Forward Proxy Functionality」になります (参考: MLでの著者のメール)
拡張CONNECT
拡張CONNECTの仕組みは以前説明したとおりです
asnokaze.hatenablog.com
今までのCONNECTメソッド問題点
今までのCONNECTメソッドの使い方は次のとおりです
クライアントはProxyに対してCONNECTメソッドを行い、TCP通信のデータをTargetにForwardしてもらいます
CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com
この方法では
Modernizing HTTP Forward Proxy Functionality
本提案では、拡張CONNECT同様、ProxyのエンドポイントとしてPathを指定できるようになっています。
また、targetとしてIPv4とIPv6を併記し、Proxyが選択できるようになっています。
HTTP/1.1
HTTP/1.1ではProxyに対して次のリクエストを送って、targetにデータをforwardしてもらいます
GET /proxy?target_host=192.0.2.1,2001:db8::1&tcp_port=443 HTTP/1.1 Host: example.com Connection: Upgrade Upgrade: connect-tcp