HTTP2 с CURL дает "Неподдерживаемый протокол",
После выполнения шагов из здесь, у меня есть Unsupported Protocol
при использовании параметра curl --http2
. Аналогично, установка CURLOPT_HTTP_VERSION
в CURL_HTTP_VERSION_2_0
приводит к передаче программы с использованием HTTP/1.1, а не HTTP/2.
Платформа: Ubuntu 15.04 на VMware Player 7.
Я установил nghttp2-1.0.4 с --prefix=/usr/local
, поэтому libnghttp2. * находится в /usr/local/lib
.
Это код для настройки curl-7.43.0:
./configure --with-nghttp2=/usr/local
Результат показывает, что HTTP2 включен:
HTTP2 support: enabled (nghttp2)
После make
и sudo make install
, возвращается Unsupported Protocol
:
curl --http2 https://http2.akamai.com
Версия curl не поддерживает nghttp2:
curl 7.43.0 (i686-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP
Затем я следил за советом из здесь, что мне нужно иметь OpenSSL 1.0.2 или новее. Установив это в /opt/openssl, я переконфигурировал:
./configure --with-nghttp2=/usr/local --with-ssl=/opt/openssl/lib
После make
и sudo make install
все проблемы остаются неизменными. Как ни странно, curl --version
по-прежнему возвращает ту же информацию, что и выше, при этом OpenSSL/1.0.1f еще не обновлен.
Приветствуется любая помощь, которая позволяет мне успешно использовать параметр --http2
.
Ответы
Ответ 1
По-видимому, вы не связываетесь с правильной версией curl, по крайней мере во время выполнения. Это то, что означает выход libcurl/7.38.0. У меня есть более высокий номер версии. Попробуйте
LD_LIBRARY_PATH=/usr/local/lib curl <whatever>
в качестве вашей команды. Или просто быть уверенным:
ldd `which curl`
и обратите внимание на зависимости, которые отображаются в списке.
Ответ 2
Это действительно помогает мне настроить его правильно
Ответ 3
Я нашел curl 7.53.1 для Windows, этот инструмент очень полезен для проверки запросов http2. Он имеет предварительно скомпилированные сборки curl для Windows, созданные с поддержкой OpenSSL, ngttp2, zlib и IPv6.