HTTP/2-förhandling med en proxy och dess destination
curl-valet --proxy-http2 styr HTTPS-proxyanslutningen. Destinationen inuti en tunnel förhandlar om sin egen HTTP-version.
Webbplatsen kan svara med HTTP/2 genom en HTTP/1.1 CONNECT-tunnel. Dess TLS-session förhandlar om destinationsprotokollet oberoende av klient-proxyanslutningen. Det omvända gäller också: HTTP/2 till en HTTPS-proxy tvingar inte fram HTTP/2 på webbplatsen.
För att medvetet testa den yttre anslutningen lade curl 8.1.0 till --proxy-http2:
curl --proxy https://proxy.example:8443 --proxy-http2 --connect-timeout 5 --max-time 15 --verbose https://example.com/Använd en verklig HTTPS-proxy och en curl-version byggd med HTTP/2-stöd. Kontrollera curl --version och läs den detaljerade förhandlingen: proxyn kan bara erbjuda HTTP/1, som curl då använder. Valet aktiverar inte HTTP/2 på en vanlig HTTP- eller SOCKS-lyssnare.
Registrera proxyförhandlingen separat från den slutliga överföringens HTTP-version. En svarsversion eller ett write-out-värde från den slutliga överföringen beskriver inte automatiskt den yttre proxyanslutningen.
För en slutpunkt från den offentliga HTTP-proxylistan, börja med den transport som stöds och en fullständig förfrågan. Lägg till valet när du faktiskt har en HTTPS-proxy och vill testa den yttre förmågan, inte för att webbplatsen stöder HTTP/2. Även två proxyer till samma HTTP/2-webbplats kan skilja sig i routning, belastning och upprättelsetid; webbplatsens version ensam förklarar inte prestandan.