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++ Facebook https://github.com/facebook/proxygen#quic-and-http3
Cronet C++ Google 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].

См. также[править | править код]

Примечания[править | править код]

  1. Bishop, M. Hypertext Transfer Protocol Version 3 (HTTP/3) (англ.). quicwg.org (1 May 2020). Дата обращения: 2 мая 2020.
  2. "". с. . секция . RFC .
  3. Historical trends in the usage of site elements for websites. W3Techs (2020).
  4. Inc, Cloudflare Microsoft Edge - HTTP/3 Docs (англ.). developers.cloudflare.com. Дата обращения: 2 мая 2020.
  5. 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. 
  6. First HTTP/3 with curl. Daniel Stenberg (5 августа 2019). Дата обращения: 2 октября 2019.
  7. cURL HTTP3 wiki. Daniel Stenberg (26 сентября 2019). Дата обращения: 2 октября 2019.
  8. MsQuic is Open Source (28 апреля 2020). Дата обращения: 28 апреля 2020.
  9. Experiment with HTTP/3 using NGINX and quiche (англ.). The Cloudflare Blog (17 October 2019). Дата обращения: 9 ноября 2019.
  10. Milestone nginx-1.17. trac.nginx.org. Дата обращения: 9 ноября 2019.
  11. Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3 (англ.). NGINX (10 June 2020). Дата обращения: 11 июня 2020.

Ссылки[править | править код]