2021-05-12 14:32:11
如何啟用curl命令HTTP2支援
2020-06-16 17:46:49
當我們直接使用 curl 去請求一個 https 頁面時,預設可以看到其預設返回的是 HTTP1.1 的 response。現在使用 HTTP2 的網站越來越多,技術也越來越成熟,如何啟用 curl 命令 HTTP 2 支援就成為了一個問題。
curl -I https://nghttp2.org/
當我們試圖用 http2 引數時,會返回一個未支援協定的「curl: (1) Unsupported protocol」錯誤:
curl --http2 -I https://nghttp2.org/
使用如下命令我們可以看到 curl 版本:
curl --version
從上圖中,我們可以看到當前 curl 的版本及支援的協定以及功能特性沒有支援 HTTP2。
啟用curl命令HTTP2支援
編譯安裝nghttp2
為了讓 curl 支援 HTTP2 我們需要安裝 nghttp2(http2 的 C 語言庫):
#安裝編譯工具等
sudo apt-get install git g++ make binutils autoconf automake autotools-dev libtool pkg-config
zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev
libjemalloc-dev cython Python3-dev python-setuptools
#編譯安裝nghttp2
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make
sudo make install
升級curl版本
cd ~
sudo apt-get build-dep curl
wget http://curl.haxx.se/download/curl-7.46.0.tar.bz2
tar -xvjf curl-7.46.0.tar.bz2
cd curl-7.46.0
./configure --with-nghttp2=/usr/local --with-ssl
sudo make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
升級完版本之後,我們再檢視 curl 版本時會發布特性中會增加 HTTP2 功能支援。此時 –http2 引數就可以正常使用了:
curl --http2 -I https://nghttp2.org
測試curl with http2
我們再使用如下命令測試 winclient 主頁看看:
curl --http2 -I https://www.winclient.cn
返回結果如下:
curl用法:獲取網站的header頭及狀態碼 http://www.linuxidc.com/Linux/2015-11/125325.htm
相關文章