Open1

curlとLibreSSLでHTTP/3

catatsuycatatsuy

https://github.com/curl/curl/blob/master/docs/HTTP3.md#ngtcp2-version

これ通りにやればよい。LibreSSLは普通にやればよい。

% ./bin/curl -V
curl 7.87.1-DEV (aarch64-apple-darwin22.1.0) libcurl/7.87.1-DEV LibreSSL/3.7.0 zlib/1.2.11 libidn2/2.3.4 nghttp2/1.50.0 ngtcp2/0.13.0-DEV nghttp3/0.9.0-DEV
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB SSL threadsafe UnixSockets

以下のオプションが使えるようになる。

curl --http3 https://www.catatsuy.org

--alt-svcを使うことができる。

curl --alt-svc altsvc.cache https://www.catatsuy.org

altsvc.cacheにAlt-Svcの結果をキャッシュしている。

% cat altsvc.cache
# Your alt-svc cache. https://curl.se/docs/alt-svc.html
# This file was generated by libcurl! Edit at your own risk.
h2 www.catatsuy.org 443 h3 www.catatsuy.org 443 "20230116 10:08:29" 0 0

初回はh2→次回h3という挙動を再現できる。