41 lines
3.6 KiB
Markdown
41 lines
3.6 KiB
Markdown
|
---
|
||
|
aliases:
|
||
|
tags:
|
||
|
- maturity/🌱
|
||
|
date: 2024-10-29
|
||
|
---
|
||
|
![[../../meta/files/images/Pasted image 20241103014445.png]]
|
||
|
|
||
|
**HTTP 1.0** был завершён и полностью задокументирован в 1996 году. Для каждого запроса к одному и тому же серверу требуется отдельное [[../../../../knowledge/dev/network/TCP|TCP]]-соединение.
|
||
|
|
||
|
**HTTP 1.1** был опубликован в 1997 году. [[../../../../knowledge/dev/network/TCP|TCP]]-соединение теперь можно оставить открытым для повторного использования (постоянное соединение), но проблема блокировки первой строки (Head-of-Line, HOL) не решена.
|
||
|
|
||
|
> [!NOTE] Head-of-Line, HOL
|
||
|
> Ситуация, когда лимит параллельных запросов в браузере исчерпан, и последующие запросы вынуждены ждать завершения предыдущих.
|
||
|
|
||
|
**HTTP 2.0** был опубликован в 2015 году. Он решает проблему HOL на уровне приложения благодаря мультиплексированию запросов, устраняя блокировку HOL на этом уровне. Однако проблема остаётся на транспортном уровне ([[../../../../knowledge/dev/network/TCP|TCP]]).
|
||
|
|
||
|
Как показано на диаграмме, HTTP 2.0 ввёл концепцию HTTP “streams”: это абстракция, которая позволяет мультиплексировать различные HTTP-запросы в рамках одного [[../../../../knowledge/dev/network/TCP|TCP]]-соединения. Каждый поток может передаваться независимо от остальных.
|
||
|
|
||
|
**HTTP 3.0** впервые был опубликован в виде черновика в 2020 году. Он предложен как преемник HTTP 2.0. Вместо [[../../../../knowledge/dev/network/TCP|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 Сети|00 Сети]]
|
||
|
**Родитель**::
|
||
|
**Источник**::
|
||
|
**Создана**:: [[2024-11-03]]
|
||
|
**Автор**::
|
||
|
### Дополнительные материалы
|
||
|
-
|
||
|
|
||
|
### Дочерние заметки
|
||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
|
|