Negociación HTTP/2 con un proxy y su destino
La opción --proxy-http2 de curl controla la conexión al proxy HTTPS. El destino dentro de un túnel negocia su propia versión HTTP.
El sitio web puede responder con HTTP/2 a través de un túnel CONNECT HTTP/1.1. Su sesión TLS negocia el protocolo de destino con independencia de la conexión entre cliente y proxy. También ocurre a la inversa: HTTP/2 hacia un proxy HTTPS no obliga al sitio a usar HTTP/2.
Para probar deliberadamente la conexión exterior, curl 8.1.0 añadió --proxy-http2:
curl --proxy https://proxy.example:8443 --proxy-http2 --connect-timeout 5 --max-time 15 --verbose https://example.com/Usa un proxy HTTPS real y una compilación de curl compatible con HTTP/2. Comprueba curl --version y lee la negociación detallada: el proxy puede ofrecer solo HTTP/1, que curl utilizará. La opción no activa HTTP/2 en un punto de escucha HTTP simple o SOCKS.
Registra la negociación del proxy por separado de la versión HTTP de la transferencia final. Una versión de respuesta o un valor write-out de la transferencia final no describe automáticamente la conexión exterior al proxy.
Para un punto de la lista pública de proxies HTTP, empieza por el transporte compatible y una solicitud completa. Añade esta opción cuando realmente tengas un proxy HTTPS y quieras probar esa capacidad exterior, no porque el sitio admita HTTP/2. Incluso dos proxies que llegan al mismo sitio HTTP/2 pueden diferir en rutas, carga y tiempo de establecimiento; la versión del sitio por sí sola no explica el rendimiento.