HTTP/3: следующий протокол передачи гипертекста — простое объяснение

HTTP/3 является новейшим членом семейства протоколов HTTP и призван заменить своих предшественников HTTP/1, HTTP/2 и HTTP over QUIC. HTTP/3 все еще находится в стадии разработки, но уже поддерживается Google Chrome, Microsoft Edge, Firefox, а с апреля 2020 года и Safari.

Третья версия стандарта HTTP изначально появилась под названием «HTTP over QUIC» и была основана на UDP в качестве экспериментального протокола. Изначально HTTP over QUIC рассматривался как потенциальный преемник HTTP/2, а с января 2020 года проект официально известен как HTTP/3. Пока неясно, как быстро новый стандарт сможет заявить о себе. В любом случае, HTTP/3 обещает более короткое время загрузки и большую безопасность благодаря передаче данных с поддержкой UDP. Однако если учесть, что, например, HTTP/2 поддерживается 80 процентами всех браузеров с момента его выхода в 2015 году, но его использование провайдерами все еще продвигается медленно, немедленного роста поддержки HTTP/3 ожидать не стоит.

Что такое HTTP/3?

В ноябре 2018 года, всего через три года после введения стандарта HTTP/2, Целевая группа инженеров интернета (IETF) опубликовала новый стандарт протокола передачи гипертекста HTTP/3. Но IETF не стала изобретать протокол передачи гипертекста с помощью HTTP/3: она лишь распознала приметы времени и разработала веб-протокол, который обеспечивает более быструю передачу данных, большую безопасность и более эффективные соединения. Еще в 2012 году компания Google разработала фактического преемника HTTP/2, названного QUIC (Quick UDP Internet Connections), и внедрила его как HTTP over QUIC в многочисленные продукты.

Однако теперь HTTP/3 объединяет преимущества существующих протоколов передачи данных HTTP/2 и HTTP over QUIC в одном стандарте для более быстрой и стабильной передачи данных. Согласно плану, HTTP/3 должен заменить HTTP/2 на базе TCP на QUIC или UDP.

Что включает в себя HTTP/3?

Чтобы понять, что включает в себя HTTP/3, сначала необходимо разобраться в функциях QUIC, UDP и HTTP/2. HTTP/3, по сути, является сплавом этих компонентов. Название HTTP over QUIC уже указывает на то, что передача данных происходит по UDP, а не по TCP.

HTTP/2 использует TCP, который является наиболее распространенным протоколом передачи данных в Интернете. TCP обрабатывает соединения с помощью многоуровневых рукопожатий и передает пакеты данных в хронологическом порядке. TCP не возобновляет передачу данных, пока пакет не будет успешно передан. Передача защищена с помощью Acks, что означает подтверждение заказа и доставки и контрольные номера. Данные, передаваемые по TCP, содержат заголовок с параметрами, которые помогают процессам отправителя соединиться с одноранговыми процессами получателя.

TCP очень надежен с точки зрения полной передачи данных, но связан с перегрузками данных и временем загрузки, поскольку все передачи останавливаются до тех пор, пока потерянный пакет данных не будет успешно передан. С появлением HTTP/2 семейство интернет-протоколов достигает своего предела, поскольку передача данных не может быть ускорена без новых протоколов.

Поэтому Google активно разрабатывает свой собственный протокол передачи данных QUIC. QUIC обходит перегрузку TCP, используя передачу UDP на основе дейтаграмм и без соединения. UDP работает как TCP на транспортном уровне, но не требует подтверждений от получателя к отправителю. Другим потокам не нужно ждать, пока предыдущий поток передаст данные. Передача данных между клиентом и сервером значительно сокращается. IETF признала преимущества нового протокола и представила его в 2018 году в качестве преемника HTTP/2 — версии HTTP over QUIC.

В принципе, транспортный протокол HTTP остается прежним. Он также состоит из заголовка и тела, использует глаголы, куки и кэширование. Разница заключается в типе передачи данных и наличии встроенного шифрования.

В чем заключается функция HTTP/3?

Запуск протокола HTTP/2 через QUIC потребовал определенных функциональных корректировок, которые в рамках экспериментального HTTP over QUIC привели к появлению HTTP/3.

Наиболее важной новой особенностью третьей редакции HTTP является исключительное использование HTTPS-адресов. Любой старый, незащищенный URL помечается как незащищенный или незашифрованный. Благодаря использованию QUIC и UDP, HTTP/3 обходит этап шифрования TSL на уровне TCP и автоматически использует шифрование TLS 1.3. Поэтому HTTP/3 можно использовать только при наличии шифрования.

Другими новыми возможностями являются постоянное соединение при изменении сети во время передачи данных (на стороне клиента или сервера), значительно уменьшенное количество пакетов данных, так как передача пакетов идет по параллельным потокам, и «прямая коррекция ошибок», то есть коррекция ошибок, которая уже выполняется на уровне QUIC.

Каковы преимущества HTTP/3?

Преимуществами HTTP/3 являются более высокая скорость передачи данных, более короткое время загрузки и более стабильное соединение. Основываясь на UDP, HTTP/3 обходит слабые места TCP и использует все преимущества HTTP/2 и HTTP over QUIC.

Хотя HTTP/2 использует мультиплексирование, то есть одновременную загрузку данных, вторая версия HTTP по-прежнему страдает от блокировки в голове линии. Это цифровые узкие места, которые обеспечивают остановку всех потоков при потере пакета в потоке. Благодаря использованию UDP, HTTP/3 не ждет успешной передачи, а продолжает процесс загрузки.

HTTP/3 не использует вводные рукопожатия для проверки безопасности соединения. Вместо передачи запросов безопасности на более высокий уровень TLS, шифрование происходит непосредственно в протоколе передачи данных. HTTP/3 сокращает время обхода при установлении соединения с двух проходов до одного.

HTTP/3 больше не привязан к IP-адресам для успешной загрузки, а использует индивидуальные идентификаторы соединений, что позволяет постоянно загружать файлы даже при смене сети.

Особенно для пользователей мобильных телефонов HTTP/3 должен обеспечить более комфортный серфинг на более стабильном, более гибком и более быстром соединении.

HTTP/2 против HTTP/3: сходства и различия

Ниже приведен краткий обзор сходств и различий, которые можно ожидать при сравнении HTTP/2 и HTTP/3:

Различия:

  • В отличие от HTTP/2, HTTP/3 основан на UDP вместо TCP.
  • Благодаря интегрированному шифрованию TLS 1.3, HTTP/3 отказывается от дополнительного запроса шифрования (рукопожатия) на уровне TLS и, таким образом, избегает ненужных запросов безопасности.
  • В отличие от HTTP/2, HTTP/3 поддерживает только зашифрованные соединения благодаря встроенному шифрованию TLS 1.3.

Сходства:

  • Оба протокола используют сжатие заголовков, но HTTP/3 использует QPack для решения проблемы сжатия HTTP/2 HPAck, которое привязано к порядку пакетов.
  • Как и HTTP/2 Server Pushes, HTTP/3 поддерживает ускоренную отправку данных CSS и JavaScript, необходимых браузеру для отображения страницы в любом случае.
  • Оба протокола используют мультиплексирование запросов/ответов, то есть параллельную потоковую передачу данных с разных ресурсов.
  • В обоих протоколах приоритет потока гарантирует, что содержимое страницы загружается с приоритетом, не дожидаясь завершения дальнейших запросов.
Примечание

Долгое время HTTP/2 считался эффективным и надежным протоколом передачи данных. Вы можете узнать о том, как он делал соединения более безопасными и быстрыми, пока не был вытеснен HTTP/3, в нашей отдельной статье о HTTP/2.

Какие проблемы может создать HTTP/3?

Многие критики HTTP/3 отмечают, что третья версия появилась слишком рано после протокола HTTP/2, а также то, что UDP скептически рассматривается как сетевой протокол. Кроме того, от нового протокола HTTP выигрывают, прежде всего, пользователи. С другой стороны, провайдеры сталкиваются с рядом проблем при переходе от TCP и TLS к UDP и QUIC.

Поскольку проверка безопасности и шифрование теперь осуществляются не через TLS, а непосредственно через UDP, а UDP предназначен для максимально быстрой доставки пакетов, провайдеры опасаются, что из-за отсутствия аутентификации TLS трафик данных больше не будет тщательно проверяться. Поэтому безопасность приложений и данных является центральной точкой критики со стороны интернет-провайдеров. Благодаря четкому регламенту «запрос-ответ», TCP считался надежным и ориентированным на соединение протоколом. Поскольку QUIC сам заботится о многих промежуточных этапах, есть опасения, что возможности контроля провайдеров будут ограничены HTTP/3, и что в поток данных может быть внедрено больше вредоносных программ.

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

Оцените статью
cdelat.ru
Добавить комментарий