現在我用curl -I
來檢索標題。我能否使用CURL獲取HTTP/2頭文件?
在即將採用HTTP/2的瀏覽器中,網站是否會採用與HPACK一起提供不同服務標題的方式,這些瀏覽器會使我使用curl命令無效?
現在我用curl -I
來檢索標題。我能否使用CURL獲取HTTP/2頭文件?
在即將採用HTTP/2的瀏覽器中,網站是否會採用與HPACK一起提供不同服務標題的方式,這些瀏覽器會使我使用curl命令無效?
是的,你可以像使用HTTP/1一樣使用curl來查看和發送帶HTTP/2的HTTP標頭。
curl已經支持HTTP/2,它作爲一種翻譯層來實現。這意味着它顯示並「假裝」標題使用1.1風格。它將標題顯示爲文本,並在回調中發送標題,就像他們在1.1中完成的一樣。我們這樣做是爲了使腳本和應用程序通過curl獲得非常流暢且基本上不可見的HTTP/2轉換路徑。
內部是通過在顯示它們之前解壓縮接收到的標題,並在發送它們之前對其進行壓縮之前顯示它們。
我相信這取決於捲曲版本。 HTTP/2被添加到curl 7.36.x IIRC中?不是所有的發行版都會有這個版本?
這是捲曲7.41.0通過HTTP/2對https://google.com
curl --http2 -I -v https://google.com
* Rebuilt URL to: https://google.com/
* Trying 173.194.123.1...
* Connected to google.com (173.194.123.1) port 443 (#0)
* ALPN, offering h2-14, http/1.1
* ALPN, server accepted to use h2-14
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=*.google.com
* start date: 2015-03-11 16:13:43 GMT
* expire date: 2015-06-09 00:00:00 GMT
* subjectAltName: google.com matched
* issuer: C=US; O=Google Inc; CN=Google Internet Authority G2
* SSL certificate verify ok.
* Using HTTP2
編輯:校正,捲曲--http2需求nghttp2編譯爲它工作https://nghttp2.org/
curl --version
curl 7.41.0 (x86_64-unknown-linux-gnu) libcurl/7.41.0 OpenSSL/1.0.2b zlib/1.2.8 nghttp2/0.7.8-DEV
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets