Files
digital-garden-backup/dev/network/HTTP.md

3.6 KiB

aliases, tags, date
aliases tags date
maturity/🌱
2024-10-29

!../../meta/files/images/Pasted image 20241103014445.png

HTTP 1.0 был завершён и полностью задокументирован в 1996 году. Для каждого запроса к одному и тому же серверу требуется отдельное ../../../../knowledge/dev/network/TCP-соединение.

HTTP 1.1 был опубликован в 1997 году. ../../../../knowledge/dev/network/TCP-соединение теперь можно оставить открытым для повторного использования (постоянное соединение), но проблема блокировки первой строки (Head-of-Line, HOL) не решена.

[!NOTE] Head-of-Line, HOL Ситуация, когда лимит параллельных запросов в браузере исчерпан, и последующие запросы вынуждены ждать завершения предыдущих.

HTTP 2.0 был опубликован в 2015 году. Он решает проблему HOL на уровне приложения благодаря мультиплексированию запросов, устраняя блокировку HOL на этом уровне. Однако проблема остаётся на транспортном уровне (../../../../knowledge/dev/network/TCP).

Как показано на диаграмме, HTTP 2.0 ввёл концепцию HTTP “streams”: это абстракция, которая позволяет мультиплексировать различные HTTP-запросы в рамках одного ../../../../knowledge/dev/network/TCP-соединения. Каждый поток может передаваться независимо от остальных.

HTTP 3.0 впервые был опубликован в виде черновика в 2020 году. Он предложен как преемник HTTP 2.0. Вместо ../../../../knowledge/dev/network/TCP для транспортного уровня используется протокол QUIC, что устраняет блокировку HOL на уровне транспорта.

QUIC основан на протоколе UDP. Он вводит потоки как полноценные сущности на уровне транспорта. Потоки QUIC используют одно и то же соединение QUIC, поэтому для создания новых потоков не требуется дополнительных рукопожатий и медленного старта. При этом потоки QUIC доставляются независимо друг от друга, что означает, что в большинстве случаев потеря пакетов, влияющая на один поток, не затрагивает остальные.

!../../meta/files/images/photo_2024-10-29 18.27.09.jpeg

!../../meta/files/images/Pasted image 20241103035804.png


Мета информация

Область:: ../../meta/zero/00 Сети Родитель:: Источник:: Создана:: 2024-11-03 Автор::

Дополнительные материалы

Дочерние заметки