Хто такий HTTP/3?
Про HTTP/3 поки пишуть не так багато, тому є сенс коротко розібрати, які проблеми вирішує нова версія протоколу.
Найперше, що варто розуміти: HTTP/3 працює поверх QUIC/UDP, а не TCP, як HTTP/1.1 та HTTP/2.
QUIC підтримує незалежні потоки даних, кожен із яких має власний порядок доставки. Завдяки цьому HTTP/3 вирішує одну з типових проблем TCP — head-of-line blocking.
Наприклад, браузер одночасно завантажує зображення, CSS і JavaScript. Якщо загубився пакет із частиною зображення, браузер чекатиме повторної доставки даних лише цього потоку. Потоки з CSS і JavaScript зможуть продовжити роботу.
Можна подумати, що в HTTP/2 це працює так само, бо в статтях на Medium (від наших братів з Індії) пишуть про паралельне завантаження і потоки. Але не все так просто.
Усі HTTP/2-потоки передаються через одне TCP-з’єднання і якщо один TCP-пакет загубився, наступні отримані дані не будуть передані браузеру, доки втрачений пакет не надійде повторно.
Тому в HTTP/2 втрата одного пакета може тимчасово заблокувати всі логічні потоки, а в HTTP/3 — лише той потік, до якого належать втрачені дані.
З опису вище, можна прикинути де він буде корисний:
- Мобільні застосунки де потрібно враховувати поганий інтернет.
- Медіасервіси.
- Сайти з великою кількістю ресурсів.
Шо там в Node.js?
В нашому болоті активно працюють над підтримкою QUIC тому при бажанні можна погратись увімкнувши його - https://nodejs.org/api/cli.html#--experimental-quic
Post #133
681
- 👍 14
- ❤ 2