003 File Manager
Current Path:
/usr/local/share/doc/curl
usr
/
local
/
share
/
doc
/
curl
/
📁
..
📄
ALTSVC.md
(1.08 KB)
📄
BINDINGS.md
(5.44 KB)
📄
BUFREF.md
(2.21 KB)
📄
BUG-BOUNTY.md
(3.26 KB)
📄
BUGS.md
(11.65 KB)
📄
CHECKSRC.md
(6.41 KB)
📄
CIPHERS.md
(10.93 KB)
📄
CODE_OF_CONDUCT.md
(1.57 KB)
📄
CODE_REVIEW.md
(5.76 KB)
📄
CODE_STYLE.md
(7.53 KB)
📄
CONTRIBUTE.md
(13.25 KB)
📄
CURL-DISABLE.md
(2.15 KB)
📄
DEPRECATE.md
(399 B)
📄
DYNBUF.md
(2.5 KB)
📄
ECH.md
(4.63 KB)
📄
EXPERIMENTAL.md
(912 B)
📄
FAQ
(65.37 KB)
📄
FEATURES.md
(5.69 KB)
📄
GOVERNANCE.md
(6.77 KB)
📄
HELP-US.md
(3.88 KB)
📄
HISTORY.md
(11.51 KB)
📄
HSTS.md
(1.4 KB)
📄
HTTP-COOKIES.md
(5.09 KB)
📄
HTTP2.md
(4.47 KB)
📄
HTTP3.md
(3.65 KB)
📄
HYPER.md
(1.84 KB)
📄
INSTALL
(315 B)
📄
INSTALL.md
(21.26 KB)
📄
INTERNALS.md
(42.85 KB)
📄
KNOWN_BUGS
(43.34 KB)
📄
MAIL-ETIQUETTE
(11.7 KB)
📄
MQTT.md
(630 B)
📄
NEW-PROTOCOL.md
(4.46 KB)
📄
PARALLEL-TRANSFERS.md
(2.04 KB)
📄
README.md
(495 B)
📄
RELEASE-PROCEDURE.md
(3.24 KB)
📄
ROADMAP.md
(854 B)
📄
RUSTLS.md
(806 B)
📄
SECURITY-PROCESS.md
(5.63 KB)
📄
SSL-PROBLEMS.md
(3.96 KB)
📄
SSLCERTS.md
(8.15 KB)
📄
THANKS
(36.43 KB)
📄
TODO
(46.71 KB)
📄
TheArtOfHttpScripting.md
(27.56 KB)
📄
URL-SYNTAX.md
(13.23 KB)
📄
VERSIONS.md
(2.22 KB)
📁
libcurl
📄
options-in-versions
(10.69 KB)
Editing: HTTP3.md
# HTTP3 (and QUIC) ## Resources [HTTP/3 Explained](https://daniel.haxx.se/http3-explained/) - the online free book describing the protocols involved. [QUIC implementation](https://github.com/curl/curl/wiki/QUIC-implementation) - the wiki page describing the plan for how to support QUIC and HTTP/3 in curl and libcurl. [quicwg.org](https://quicwg.org/) - home of the official protocol drafts ## QUIC libraries QUIC libraries we're experimenting with: [ngtcp2](https://github.com/ngtcp2/ngtcp2) [quiche](https://github.com/cloudflare/quiche) ## Experimental! HTTP/3 and QUIC support in curl is considered **EXPERIMENTAL** until further notice. It needs to be enabled at build-time. Further development and tweaking of the HTTP/3 support in curl will happen in in the master branch using pull-requests, just like ordinary changes. # ngtcp2 version ## Build with OpenSSL Build (patched) OpenSSL % git clone --depth 1 -b OpenSSL_1_1_1k+quic https://github.com/quictls/openssl % cd openssl % ./config enable-tls1_3 --prefix=<somewhere1> % make % make install_sw Build nghttp3 % cd .. % git clone https://github.com/ngtcp2/nghttp3 % cd nghttp3 % autoreconf -i % ./configure --prefix=<somewhere2> --enable-lib-only % make % make install Build ngtcp2 % cd .. % git clone https://github.com/ngtcp2/ngtcp2 % cd ngtcp2 % autoreconf -i % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only % make % make install Build curl % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf % LDFLAGS="-Wl,-rpath,<somewhere1>/lib" ./configure --with-openssl=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3> % make ## Build with GnuTLS Build GnuTLS % git clone --depth 1 https://gitlab.com/gnutls/gnutls.git % cd gnutls % ./bootstrap % ./configure --disable-doc --prefix=<somewhere1> % make % make install Build nghttp3 % cd .. % git clone https://github.com/ngtcp2/nghttp3 % cd nghttp3 % autoreconf -i % ./configure --prefix=<somewhere2> --enable-lib-only % make % make install Build ngtcp2 % cd .. % git clone https://github.com/ngtcp2/ngtcp2 % cd ngtcp2 % autoreconf -i % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only --with-gnutls % make % make install Build curl % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf % ./configure --without-openssl --with-gnutls=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3> % make # quiche version ## build Build quiche and BoringSSL: % git clone --recursive https://github.com/cloudflare/quiche % cd quiche % cargo build --release --features ffi,pkg-config-meta,qlog % mkdir deps/boringssl/src/lib % ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) deps/boringssl/src/lib/ Build curl: % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf % ./configure LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" --with-openssl=$PWD/../quiche/deps/boringssl/src --with-quiche=$PWD/../quiche/target/release % make ## Run Use HTTP/3 directly: curl --http3 https://nghttp2.org:4433/ Upgrade via Alt-Svc: curl --alt-svc altsvc.cache https://quic.aiortc.org/ See this [list of public HTTP/3 servers](https://bagder.github.io/HTTP3-test/)
Upload File
Create Folder