HTTP/3
HTTP/3 є третьою основною версією протоколу, який підтримує Інтернет. Там, де HTTP/2 був еволюцією — той самий HTTP, швидша доставка — HTTP/3 — це переробка транспорту, яка працює на QUIC замість TCP+TLS. Він є типовим для основних сайтів із 2022 року та забезпечує більшість трафіку, який користувачі зараз вважають «швидким».
Повний текст статті подано англійською мовою нижче.
HTTP/3 — це HTTP через QUIC — веб-протокол наступного покоління, який замінює стек TCP+TLS+HTTP/2 єдиним інтегрованим дизайном на основі UDP. Він був стандартизований у RFC 9114 у 2022 році і зараз є протоколом за замовчуванням для більшості основних сайтів, зокрема Google, Cloudflare, Meta та Microsoft.
Історія версій HTTP
A Короткий довідник:
- HTTP/0.9 (1991): однорядкові запити, немає заголовки, без метаданих. Лише історичний інтерес.
- HTTP/1.0 (1996): заголовки, кілька методів, типи MIME. Кожен запит нового TCP-з’єднання.
- HTTP/1.1 (1997, переглянуто 2014): постійні з’єднання, конвеєрне об’єднання, заголовки хостів. «Робоча конячка» Інтернету протягом двох десятиліть.
- HTTP/2 (2015): бінарний протокол, стиснення заголовків (HPACK), мультиплексування потоків, сервер push. Працює через TLS через TCP.
- HTTP/3 (2022): працює через QUIC через UDP. Усуває блокування переднього рядка TCP, швидше рукостискання, підтримує міграцію підключення.
Що вирішив HTTP/3
Три конкретні проблеми HTTP/2 спричинили модернізацію:
- Блокування переднього рядка на транспортному рівні. HTTP/2 мультиплексує багато потоків через одне з’єднання TCP. Коли пакет втрачається, TCP зупиняє все з’єднання, доки втрачений пакет не буде повторно передано — навіть якщо цей пакет потрібен лише для одного потоку. Надійність QUIC для кожного потоку усуває це.
- Налаштування кількох двосторонніх маршрутів. Квіткування TCP + TLS = 3 двосторонні передачі перед тим, як HTTP зможе надходити. QUIC об’єднує їх у 1 двосторонній маршрут (0 у деяких випадках 0-RTT). Для підключення із затримкою 100 мс це покращення завантаження сторінки на 200–300 мс.
- Припинення з’єднання при зміні мережі. Перехід із Wi-Fi на стільниковий зв’язок руйнує кожне TCP-з’єднання. Перенесення з’єднань QUIC витримує перемикання, ідентифікуючи з’єднання за допомогою ідентифікатора з’єднання, а не 5-кортежу.
Що залишається таким же, як HTTP/2
З точки зору програми HTTP/3 виглядає дуже схожим на HTTP/2:
- Binary фреймування
- Мультиплексовані потоки (тепер без блокування TCP HOL)
- Стиснення заголовків (тепер QPACK замість HPACK, перероблено для роботи з потоковою моделлю QUIC)
- Така семантика HTTP — методи, коди стану, заголовки
Програма код, який працював на HTTP/2, працює на HTTP/3 без змін; відмінності полягають виключно в транспорті.
Як браузер використовує HTTP/3
Сервери сигналізують про доступність HTTP/3 через заголовок відповіді alt-svc у відповідях HTTP/2. Браузер пам’ятає, що «це джерело також підтримує h3 на UDP/443» і використовує HTTP/3 для наступних з’єднань. Якщо QUIC виходить з ладу (брандмауер блокує UDP тощо), веб-переглядач повертається до HTTP/2 через TCP.
Деякі браузери також використовують DNS HTTPS-записи, щоб дізнатися про доступність HTTP/3 ще до встановлення з’єднання — зберігаючи початковий зворотний зв’язок HTTP/2 під час першого контакту.
Продуктивність у практика
Перемоги найбільші там, де TCP постраждав найбільше:
- Мобільні мережі із великою втратою пакетів і частими змінами мережі
- З’єднання з великою затримкою, де збережене рукостискання має значення пропорційно
- Сторінки з багатьма ресурсами, де мультиплексування приносить користь
На чистих дротових з’єднаннях із межею CDN HTTP/3 і HTTP/2 працюють однаково. Розрив збільшується в міру погіршення умов — саме тоді, коли користувачі помічають повільність.
Прийняття
Наприкінці 2025 року:
- Chrome, Firefox, Safari, Edge усі за замовчуванням використовують HTTP/3, коли це пропонує сервер.
- Cloudflare, Google, Швидко Akamai, AWS CloudFront, Microsoft, Meta обслуговують HTTP/3.
- Приблизно 30–40% усіх веб-запитів за обсягом використовують HTTP/3.
- Багато корпоративних мереж блокують QUIC на брандмауері, змушуючи повернутися до HTTP/2. Це найбільший блокувальник для більшого впровадження.
Що HTTP/3 не змінює
Семантика HTTP не змінюється. Працюють ті самі шаблони кешування, узгодження вмісту, умовних запитів і автентифікації. Веб-розробникам, які створюють програми, рідко потрібно думати про те, яка версія HTTP використовується; платформа обробляє це. Переваги нараховуються автоматично всім, чий початковий сервер і CDN підтримують HTTP/3.
Часті запитання
- Чи потрібна окрема реалізація HTTP/3 для мого сайту?
- Якщо ви сидите за CDN, який підтримує HTTP/3 (Cloudflare, Fastly, Akamai, CloudFront), він уже є. Якщо ви запускаєте початковий сервер безпосередньо, вам потрібен сервер із підтримкою HTTP/3 (nginx 1.25+, Caddy, LiteSpeed, h2o). Більшість користувачів отримують HTTP/3, розгортаючи за CDN.
- Як дізнатися, чи сайт використовує HTTP/3?
- На вкладці «Мережа» браузера DevTools показано протокол для кожного запиту — «h3» або «http/3» означає HTTP/3. Такі онлайн-інструменти, як http3check.net, також тестують довільні сайти. Адресний рядок браузера цього не відображає; це річ інструментів розробника.
- Чи завжди HTTP/3 швидший?
- Для з’єднань із втратами або з великою затримкою – так. У чистій локальній мережі з низькою затримкою різниця часто полягає в шумі. У мережах, які блокують UDP, HTTP/3 повністю виходить з ладу та повертається до HTTP/2 із додатковою затримкою налаштування, яка повільніша, ніж повне пропускання QUIC.
- Що означає HTTP/3 для VPN?
- Сучасні VPN (WireGuard, OpenVPN) добре тунелюють UDP і HTTP/3. Деякі застарілі або обмежувальні налаштування VPN лише тунелюють TCP, у цьому випадку HTTP/3 мовчки повертається до HTTP/2. Перевірте підтримку UDP вашої VPN, якщо ви помітили незвичну повільність на сайтах HTTP/3.
- Чи існуватиме HTTP/4?
- Можливо, з часом, але не скоро. HTTP/3 було запущено лише в 2022 році, і впровадження все ще зростає. Майбутня версія HTTP, швидше за все, будуватиметься на основі QUIC, а не замінить його; Сам QUIC є більш цікавою точкою еволюції.