Почему мы его используем и с чего начать – The New Stack

Я уверен, что вы, как и я, приветствовали новость о том, что третья основная версия протокола передачи гипертекста, т.е. HTTP/3, который был принят в прошлом месяце в качестве стандарта IETF (Internet Engineering Task Force). Нет, конечно, нет — сеть просто работает, так зачем об этом беспокоиться? Но если вы смутно заинтригованы тем, почему произошло изменение, вот краткое изложение истории, стоящей за ним. Затем мы рассмотрим причины, по которым вам следует внедрить его для своей компании.

💡 HTTP/3 — это третья версия протокола передачи гипертекста (HTTP), ранее известного как HTTP-over-QUIC. QUIC был первоначально разработан Google и является преемником HTTP / 2. Такие компании, как Google и Facebook, уже используют QUIC для ускорения работы в Интернете.

Очень короткая история HTTP

В прошлом существовало два интернет-протокола, с которыми можно было работать. Даже до появления Интернета нам все еще приходилось передавать пакеты информации (или дейтаграммы) с одного устройства на другое через Интернет. Для разработчика игр важным протоколом был UDP (протокол пользовательской схемы). Это был быстрый стандарт «выстрелил-забыл»: я отправил пакет по сети и был пойман, а иногда и нет. Было бы идеально представить (например) пулю игрового игрока, потому что она вышла из вашего пистолета через сеть и спроецирована на машину-мишень. Даже если по пути будет потеряна пуля, игровая сессия в целом все равно будет хорошей.

Но для более стабильных систем, таких как Интернет, правильный базовый протокол для использования был TCP (Протокол управления передачей). Это была более формальная система, обеспечивающая правильную доставку и расположение посылок. Отсюда установилась надежная связь, а затем и надежные информационные потоки. Я помню, как подключался к Интернету до Интернета (да, это было раньше), я использовал Trumpet Winsock — это было описано как «стек TCP / IP». В давно умершей компании мы использовали это для работы с CIX, британской системой онлайн-конференций (доска сообщений). Сегодня, конечно же, CIX — это южнокорейский бойз-бенд. Это прогресс.

В конечном итоге Всемирная паутина и HTTP, написанные поверх TCP/IP, захватили основное использование Интернета. Другая отсутствующая аббревиатура TLS (Transport Layer Security), который обеспечивал элемент шифрования и стал стандартом безопасности де-факто к тому времени, когда HTTP/2 был готов.

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

Входит быстрый

Интернет сегодня совсем другой. Да, у меня есть хорошее оптоволоконное соединение и хорошие линии для моего домашнего компьютера, но большинство пользователей используют Интернет через свои телефоны или ноутбуки. Когда вы переходите от одной мачты к другой, из-за стен, блокирующих или отражающих сигналы, соединения обычно обрываются и перезапускаются. Это не то, что нравится TCP – он не очень хочет общаться без формального представления и хорошего рукопожатия. На самом деле получается, что строгий учет TCP и ожидание последнего случайного пакета означает лишь то, что пользователям приходится ждать, пока загрузятся веб-страницы и скачивать новые приложения, или переустанавливать тайм-аут соединения.

Таким образом, чтобы воспользоваться неформальностью UDP и позволить сети использовать некоторые умные вещи на ходу, быстрый Формату (UDP Fast Internet Connections) уделяется больше внимания.

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

Еще одно направление, в котором движется QUIC, — встроенная безопасность. Хотя раньше шифрование было необязательным (например, HTTP или HTTPS), QUIC Всегда зашифровано. В наши дни считается, что каждый сайт должен быть зашифрован, несмотря на накладные расходы. Это делается не только для того, чтобы парень посередине не видел, какой апельсиновый сок вы заказываете; Это подтверждает, что вы действительно разговариваете с настоящим поставщиком апельсинового сока.

Форматы постоянно совершенствуются, но на самом деле они учитывают различные интересы с течением времени.

активное использование

Итак, как продвигается реализация? Есть три аспекта, которые следует учитывать. Браузер, облачная инфраструктура и пользовательский код.

Во-первых, браузер. Это таблица с сайта «Могу ли я использовать»:

Google явно заинтересован в этом — версии Chrome, начиная с версии 87 (конец 2020 г.), могут использовать протокол HTTP / 3. Неудивительно, что, учитывая недавнюю историю Apple в разработке браузеров, Safari отстает.

Вы можете использовать любой из этих сайтов прямо сейчас, чтобы проверить, совместим ли ваш браузер с HTTP/3 (вам может потребоваться перезагрузить):

А как же существующие сайты? Ваш сайт в настоящее время использует его? Итак, чтобы протестировать существующий сайт, попробуйте https://geekflare.com/tools/http3-test. И прежде чем вы спросите, noewstack.io (т.е. IP: 172.67.70.57) в настоящее время не поддерживает его! Но у нас много компаний в этом плане. Хорошая новость заключается в том, что если ваш веб-сайт хорошо работает с HTTP/2, он будет так же хорош или даже лучше с HTTP/3.

Кто продвигает HTTP/3?

Итак, кто платит за HTTP/3? Ну, вы уже знаете; Это Гугл. Но также CDN, такие как Cloudflare и Fastly. Хлеб с маслом — это скорость отклика сети. Таким образом, самый простой способ реализовать HTTP/3 — через CDN. Это также изменение, которое приносит больше пользы мобильным пользователям.

Есть серверы, созданные с помощью QUIC (например, Lскорость) Но принятие было неравномерным. Многие серверы полагаются на сторонние библиотеки, поэтому в данном случае проверяется шаблон повторного использования существующих рабочих пространств. Существующие серверы, такие как Node.js, NGINX и Apache, теряют преимущества взаимодействия с пользователем при развертывании новых внутренних компонентов. И наоборот, новые библиотеки относительно непроверены. Смысл использования веб-сервера в том, что он может быть надежным, проверенным и хорошо обслуживаемым.

HTTP/3.принятие

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

Глядя на несколько простых примеров работы (таких как простой сервер и простой клиент), мы можем познакомиться с несколькими уровнями работы.

Первый контакт. Этот канал верхнего уровня изначально создается между двумя конечными точками. а Идентификатор контакта Это было создано. После того, как он будет установлен, если протоколы ниже изменятся (например, телефон, который переключает Wi-Fi), он все равно будет подключаться, чтобы избежать необходимости начинать переговоры снова и снова.

Затем вы открываете соединения потоки которые несут свой собственный тип данных и не мешают друг другу.

Ниже еще пакеты. Каждый пакет, как хорошо адресованное сообщение, имеет свою собственную информацию о соединении и шифровании. А внутри конверт Шины. Это представляет собой фактически отправляемые данные.

Как я уже говорил, прогресс отражает только изменение моделей использования. Сегодня мы ценим безопасность и скорость, потому что больше не относимся к Интернету как к ненадежной магии и поэтому используем его для управления своими личными делами. HTTP/3 поможет решить эти проблемы. Слоны в комнате могут быть Web3 и богатыми, появляющимися мирами метавселенной. Возможно, новые идеи из этих областей в будущем будут способствовать развитию HTTP/4.

Основное изображение через Shutterstock.

Leave a Comment