Согласование HTTP/2 с прокси и его целью
Параметр --proxy-http2 в curl управляет соединением с HTTPS-прокси. Цель внутри туннеля согласует собственную версию HTTP.
Сайт может отвечать по HTTP/2 через туннель HTTP/1.1 CONNECT. Его сеанс TLS согласует целевой протокол независимо от соединения клиент–прокси. Верно и обратное: HTTP/2 до HTTPS-прокси не заставляет сайт использовать HTTP/2.
Для целенаправленной проверки внешнего соединения curl 8.1.0 добавил --proxy-http2:
curl --proxy https://proxy.example:8443 --proxy-http2 --connect-timeout 5 --max-time 15 --verbose https://example.com/Используйте настоящий HTTPS-прокси и сборку curl с поддержкой HTTP/2. Проверьте curl --version, затем прочитайте подробное согласование: прокси может предлагать только HTTP/1, который curl и использует. Параметр не включает HTTP/2 на обычном HTTP- или SOCKS-слушателе.
Записывайте согласование прокси отдельно от версии HTTP конечной передачи. Версия ответа или значение write-out конечной передачи не описывает автоматически внешнее соединение с прокси.
Для узла из публичного списка HTTP-прокси начните с поддерживаемого транспорта и полного запроса. Добавляйте параметр, когда действительно используете HTTPS-прокси и хотите проверить эту внешнюю возможность, а не потому, что сайт поддерживает HTTP/2. Даже два прокси к одному HTTP/2-сайту могут отличаться маршрутизацией, нагрузкой и временем установления; одна версия сайта не объясняет производительность.