HTTP/3
HTTP/3 (ранее известный как HTTP-over-QUIC) — готовящаяся к публикации третья версия протокола передачи гипертекста HTTP, используемого для передачи информации во Всемирной паутине, наследница HTTP/2[1][2]. HTTP/3 в настоящее время находится в стадии черновика и основан на предыдущем черновике RFC «Hypertext Transfer Protocol (HTTP) over QUIC», где QUIC — экспериментальный сетевой протокол транспортного уровня, разработанный в 2012 году компанией Google.
28 октября 2018 года председатель рабочих групп IETF HTTP и QUIC Марк Ноттингем в обсуждении списка рассылки сделал официальный запрос на переименование HTTP-over-QUIC в HTTP/3, чтобы «четко идентифицировать его как еще одну привязку семантики HTTP к сетевому протоколу … чтобы люди понимали его отличие от QUIC» и передать его разработку от рабочей группы QUIC рабочей группе HTTP после завершения и публикации проекта. Спустя несколько дней предложение Ноттингема было принято другими членами IETF.
Поддержка HTTP/3 была добавлена в Chrome (сборка Canary) в сентябре 2019 года, и хотя HTTP/3 еще не включен по умолчанию ни в одном браузере, к 2020 году поддержку HTTP/3 можно включить в стабильных версиях Chrome и Firefox. Экспериментальная поддержка HTTP/3 была добавлена в Safari Technology Preview 8 апреля 2020 года и будет добавлена в Safari 14.
По данным W3Techs на 1 декабря 2020 года, 3,9 % из 10 млн самых популярных интернет-сайтов поддерживают протокол HTTP/3[3].
Реализации[править | править код]
Браузеры[править | править код]
Браузер | Версия | Дата |
---|---|---|
Chrome | Стабильная версия (79) | Декабрь 2019 |
Firefox | Стабильная версия (72.0.1) | Январь 2020 |
Safari | Safari Technology Preview 104 | Апрель 2020 |
Microsoft Edge | Edge (Canary build) | 2020[4] |
Библиотеки[править | править код]
Существуют библиотеки с открытым кодом, имплементирующие клиентскую или серверную логику QUIC и HTTP/3[5].
Название | Язык программирования | Компания | Репозиторий |
---|---|---|---|
quiche | Rust | Cloudflare | https://github.com/cloudflare/quiche |
neqo | Rust | Mozilla | https://github.com/mozilla/neqo |
proxygen | C++ | https://github.com/facebook/proxygen#quic-and-http3 | |
Cronet | C++ | https://github.com/chromium/chromium/tree/master/net/quic | |
lsquic | C | LiteSpeed | https://github.com/litespeedtech/lsquic |
nghttp3 | C | https://github.com/ngtcp2/nghttp3 | |
h2o | C | https://github.com/h2o/h2o | |
libcurl[6][7] | C | https://github.com/curl/curl | |
MsQuic[8] | C | Microsoft | https://github.com/microsoft/msquic |
Flupke | Java | https://bitbucket.org/pjtr/flupke | |
aioquic | Python | https://github.com/aiortc/aioquic | |
quic-go | Go | https://github.com/lucas-clemente/quic-go | |
http3 | Haskell | https://github.com/kazu-yamamoto/http3 |
Библиотека quiche компании Cloudflare может быть использована в качестве патча к серверу nginx[9]. Полноценная поддержка HTTP/3 «из коробки» планируется в версии 1.17 сервера nginx[10]. Ее технологическая демо-версия была представлена в июне 2020 года[11].
См. также[править | править код]
Примечания[править | править код]
- ↑ Bishop, M. Hypertext Transfer Protocol Version 3 (HTTP/3) (англ.). quicwg.org (1 May 2020). Дата обращения: 2 мая 2020.
- ↑ "". с. . секция . RFC .
- ↑ Historical trends in the usage of site elements for websites . W3Techs (2020).
- ↑ Inc, Cloudflare Microsoft Edge - HTTP/3 Docs (англ.). developers.cloudflare.com. Дата обращения: 2 мая 2020.
- ↑ Internet-Drafts that make up the base QUIC specification: quicwg/base-drafts, IETF QUIC WG, 2019-11-12, <https://github.com/quicwg/base-drafts>. Проверено 13 ноября 2019.
- ↑ First HTTP/3 with curl . Daniel Stenberg (5 августа 2019). Дата обращения: 2 октября 2019.
- ↑ cURL HTTP3 wiki . Daniel Stenberg (26 сентября 2019). Дата обращения: 2 октября 2019.
- ↑ MsQuic is Open Source (28 апреля 2020). Дата обращения: 28 апреля 2020.
- ↑ Experiment with HTTP/3 using NGINX and quiche (англ.). The Cloudflare Blog (17 October 2019). Дата обращения: 9 ноября 2019.
- ↑ Milestone nginx-1.17 . trac.nginx.org. Дата обращения: 9 ноября 2019.
- ↑ Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3 (англ.). NGINX (10 June 2020). Дата обращения: 11 июня 2020.