Negocjowanie HTTP/2 z proxy i jego celem
Opcja --proxy-http2 w curl steruje połączeniem z proxy HTTPS. Cel wewnątrz tunelu negocjuje własną wersję HTTP.
Witryna może odpowiadać w HTTP/2 przez tunel HTTP/1.1 CONNECT. Jej sesja TLS negocjuje protokół docelowy niezależnie od połączenia klient–proxy. Odwrotnie też: HTTP/2 do proxy HTTPS nie wymusza HTTP/2 w witrynie.
Aby świadomie testować połączenie zewnętrzne, curl 8.1.0 dodał --proxy-http2:
curl --proxy https://proxy.example:8443 --proxy-http2 --connect-timeout 5 --max-time 15 --verbose https://example.com/Użyj rzeczywistego proxy HTTPS i kompilacji curl obsługującej HTTP/2. Sprawdź curl --version, a potem przeczytaj szczegóły negocjacji: proxy może oferować tylko HTTP/1, którego curl użyje. Opcja nie włącza HTTP/2 na zwykłym punkcie nasłuchowym HTTP ani SOCKS.
Zapisuj negocjację proxy oddzielnie od wersji HTTP końcowego transferu. Wersja odpowiedzi lub wartość write-out końcowego transferu nie opisuje automatycznie zewnętrznego połączenia z proxy.
Dla punktu z publicznej listy proxy HTTP zacznij od obsługiwanego transportu i pełnego żądania. Dodaj opcję, gdy rzeczywiście masz proxy HTTPS i chcesz sprawdzić tę zewnętrzną zdolność, a nie dlatego, że witryna obsługuje HTTP/2. Nawet dwa proxy do tej samej witryny HTTP/2 mogą różnić się routingiem, obciążeniem i czasem zestawiania; sama wersja witryny nie wyjaśnia wydajności.