У нічних збірках Firefox з'явилася підтримка HTTP/3
В нічні зборки Firefox, які ляжуть в основу випуску Firefox 72, запланованого на 7 січня додано підтримка протоколу HTTP/3. За замовчуванням HTTP/3 вимкнено та вимагає активації опції «network.http.http3.enabled» в about:config.
Підтримка HTTP/3 у Firefox заснована на проекті Mozilla, що розвивається. neqo, що надає реалізацію клієнта та сервера для протоколу QUIC. Код компонентів підтримки HTTP/3 і QUIC написаний мовою Rust.
З клієнтського програмного забезпечення експериментальна підтримка HTTP/3 також вже додано у Chrome та curl, а для серверів доступна у формі модуля для nginx та тестового сервера на базі бібліотеки пиріг із заварним кремом (реалізація QUIC та HTTP/3 на мові Rust від компанії Cloudflare). Для перевірки роботи клієнтів HTTP/3 запущено кілька тестових сайтів, більша частина з яких поки що коректно не відкривається в Firefox (HTTP/3 знаходиться на стадії чорнової специфікації та остаточно не стандартизований).
Нагадаємо, що HTTP/3 стандартизує використання протоколу QUIC як транспорт для HTTP/2. Протокол QUIC (Quick UDP Internet Connections) з 2013 року розвивається компанією Google як альтернатива зв'язці TCP+TLS для Web, вирішальної проблеми з великим часом встановлення та узгодження з'єднань у TCP та усуває затримки при втраті пакетів у процесі передачі даних. QUIC є надбудовою над протоколом UDP, що підтримує мультиплексування декількох з'єднань і забезпечує методи шифрування, еквівалентні TLS/SSL.
Висока безпека, аналогічна TLS (насправді QUIC надає можливість використання TLS поверх UDP);
Контроль за цілісністю потоку, що запобігає втраті пакетів;
Можливість миттєво встановити з'єднання (0-RTT, приблизно в 75% випадках дані можна передавати відразу після відправки пакета установки з'єднання) та забезпечити мінімальні затримки між відправкою запиту та отриманням відповіді (RTT, Round Trip Time);
Не використання при повторній передачі пакета того ж номера послідовності, що дозволяє уникнути двозначності при визначенні отриманих пакетів та позбутися таймаутів;
Втрата пакета впливає на доставку тільки пов'язаного з ним потоку і не зупиняє доставку даних паралельно передаються через поточне з'єднання потоках;
Засоби корекції помилок, які мінімізують затримки через повторну передачу втрачених пакетів. Використання спеціальних кодів корекції помилок на рівні пакета для скорочення ситуацій, що вимагають повторної передачі даних втраченого пакета.
Кордони криптографічних блоків вирівняні з межами пакетів QUIC, що зменшує вплив втрат пакетів на декодування вмісту наступних пакетів;
Відсутність проблем із блокуванням черги TCP;
Підтримка ідентифікатора з'єднання, що дозволяє скоротити час встановлення повторного з'єднання для мобільних клієнтів;
Можливість підключення розширених механізмів контролю навантаження з'єднання;
Використання техніки прогнозування пропускної спроможності в кожному напрямку для забезпечення оптимальної інтенсивності відправлення пакетів, запобігаючи скоченню в стан навантаження, при якому спостерігається втрата пакетів;
Помітний приріст продуктивності та пропускної спроможності, в порівнянні з TCP. Для відеосервісів, таких як YouTube, застосування QUIC показало скорочення операцій повторної буферизації під час перегляду відео на 30%.