curlがデフォルトでHTTP/2に対応している…
しかもOpenSSLじゃなくてLibreSSLになってるぞ。Macの話ね。High Sierraでそうなってることに気づいたんですが、いつからだろう。
# uname -a
Darwin mbp.local 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64
# which curl
/usr/bin/curl
# curl -V
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy
# curl -I /
HTTP/2 403
server: nginx/1.13.12
date: Wed, 18 Apr 2018 14:53:38 GMT
content-type: text/html
content-length: 170
OSによって違うもんなんですね。つーか、TLSのライブラリがここまでバラバラとは…
OS | curl | HTTP | TLS |
---|---|---|---|
macOS 10.13.4(High Sierra) | 7.54.0 | HTTP/2 | LibreSSL/2.0.20 |
CentOS 7 | 7.29.0 | HTTP/1.1 | NSS/3.28.4 |
Alpine 3.7.0 | 7.59.0 | HTTP/1.1 | LibreSSL/2.6.3 |
Ubuntu 16.04.4 | 7.47.0 | HTTP/1.1 | GnuTLS/3.4.10 |
Ubuntu 18.04 | 7.58.0 | HTTP/2 | OpenSSL/1.1.0g |
Fedora 27 | 7.55.1 | HTTP/2 | OpenSSL/1.1.0g |
Raspbian 8(jessie) | 7.38.0 | HTTP/1.1 | OpenSSL/1.0.1t |
Debian 9 | 7.52.1 | HTTP/2 | OpenSSL/1.0.2l |
openSUSE 42.3 | 7.37.0 | HTTP/1.1 | OpenSSL/1.0.2j |