В 2015 году был представлен HTTP/2, который стал значительным шагом в развитии протокола. Его главной целью было устранение недостатков HTTP/1.1, в том числе проблемы блокировки первой строки (Head-of-Line, HOL) на уровне приложения. Это удалось достичь благодаря внедрению мультиплексирования, что позволило передавать несколько запросов одновременно через одно TCP-соединение, минимизируя задержки и увеличивая производительность. Однако HOL-блокировка на транспортном уровне (TCP) всё ещё осталась нерешённой.
Одним из важнейших изменений стало то, что HTTP/2 перешёл с текстового на бинарный формат. Это нововведение улучшило обработку запросов и ответов, упростив разбиение данных на более мелкие фрагменты, которые называются кадрами (frames). Кроме того, появилась возможность сжимать заголовки с помощью алгоритма HPACK, что снизило объём данных, передаваемых по сети, и ускорило загрузку страниц.
Одной из ключевых концепций HTTP/2 стал механизм потоков (streams). Это абстракция, позволяющая мультиплексировать несколько HTTP-запросов и ответов в рамках одного TCP-соединения. Потоки работают независимо друг от друга, что предотвращает блокировку одних запросов другими, даже если они выполняются одновременно.
Каждое соединение в HTTP/2 содержит несколько потоков. Потоки, в свою очередь, состоят из сообщений формата “запрос-ответ”, которые делятся на кадры. Эти кадры передаются между сервером и клиентом, а специальные теги помогают идентифицировать их и собирать в правильной последовательности.
HTTP/2 предоставляет возможность приоритизировать потоки. Приоритизация позволяет разработчикам назначать запросам относительный вес, чтобы более важные запросы обрабатывались первыми. Например, это может быть полезно при загрузке веб-страницы, где основные элементы, такие как HTML и CSS, должны обрабатываться быстрее, чем изображения или дополнительные скрипты.
Преимущества HTTP/2
- Мультиплексирование: Одновременная передача нескольких запросов через одно соединение без блокировок.
- Сжатие заголовков: Уменьшение объёма передаваемых данных благодаря алгоритму HPACK.
- Бинарный формат: Более эффективная передача и обработка данных.
- Приоритизация: Возможность распределять ресурсы в зависимости от важности запросов.
Как работает HTTP/2:
- Устанавливается одно TCP-соединение между сервером и клиентом.
- В рамках соединения создаются потоки, каждый из которых обрабатывает отдельный запрос.
- Сообщения в потоке разбиваются на кадры, чтобы их можно было передавать параллельно.
- На принимающей стороне кадры собираются обратно в исходное сообщение благодаря меткам, уникальным для каждого кадра.
Мета информация
Область:: 00 Сети
Родитель:: HyperText Transfer Protocol
Источник::
Создана:: 2024-11-27
Автор::