Home >Промышленный Интернет вещей>Промышленный Интернет вещей
Чем HTTP/3 лучше HTTP/1 и HTTP/2?


 

Предисловие

Благодаря этой статье вы сможете узнать:

1. Что такое протокол HTTP?

2. Изменения в разработке HTTP 1.1/2.0/3.0

3. Основные различия между HTTP 1.1/2.0/3.0

4. Значение эволюции и развития HTTP 3.0.

 

 

Что такое протокол HTTP?

 

HTTP

 

HTTP (протокол передачи гипертекста) — это протокол прикладного уровня, используемый для передачи гипертекстовых документов. Он основан на протоколе TCP и предназначен для связи между веб-браузерами и веб-серверами.

Протокол прикладного уровня HTTP

 

Основные характеристики:

1. На основе протокола TCP, протокола прикладного уровня.

2. Передайте некоторый контент HTML, CSS и JavaScript.

3. Запросы и ответы

4. Простота и расширяемость: простая семантика и настраиваемый контент в заголовке запроса.

5. Безгражданство: запросы изолированы друг от друга


Протокол прикладного уровня HTTP

 

Все версии протокола HTTP на данный момент можно разделить на HTTP 0.9, HTTP 1.0, HTTP 1.1, HTTP 2.0 и HTTP 3.0. Среди них широко используется версия HTTP 1.1, а также продвигается версия HTTP 2.0. как будущая версия HTTP 3.0. Сегодня основные представили эти три версии.

 

 

Изменения в разработке между HTTP 1.1/2.0/3.0

 

HTTP

 

«HTTP 1.1»

 

HTTP означает протокол передачи гипертекста, прикладной протокол, используемый для связи через Всемирную паутину с момента его появления в 1989 году. HTTP — это метод, используемый компьютерами и серверами в Интернете для запроса и отправки информации.

 

HTTP 1.1 — это стандартизированный протокол, который устраняет множество неясностей и вносит множество улучшений.

 

"Способ работы"

HTTP использует несколько простых методов для отправки и получения информации между компьютерами. Двумя наиболее распространенными методами являются: (1) приобретение (2) выпуск; Когда клиентский компьютер взаимодействует с сервером, он отправляет одну из этих команд, чтобы указать серверу, что делать дальше. В ответ сервер обычно возвращает клиентскому компьютеру ресурс, например веб-страницу HTML.

 

«Получить пример»

Давайте поместим это в пример HTTP-транзакции, которая может произойти.


HTTP 1.1

В этом примере клиентский компьютер использует метод GET для запроса HTML-документа с именем «index.html» по протоколу HTTP/1.1 от хост-сервера «www.example.co.uk». В ответ веб-сервер возвращает документ index.html на клиентский компьютер вместе со всеми связанными таблицами стилей, изображениями или другими ресурсами.

 

Однако не все эти ресурсы будут возвращены за одну транзакцию — запрос и ответ будут передаваться туда и обратно до тех пор, пока все соответствующие данные не будут переданы и клиент не сможет отобразить веб-страницу в своем браузере.

 

«Пример самотестирования при включении питания»

Вот еще один пример того, как выполнить типичную HTTP-транзакцию с помощью команды POST:


HTTP 1.1

В этом примере клиентский компьютер использует метод POST для отправки данных на указанный сервер. Здесь отправляются данные: «поле1=значение1&поле2=значение2». Первая строка определяет используемый метод, файл для отправки данных и версию HTTP. Строка «хост» определяет, куда должен подключиться клиентский компьютер перед отправкой указанных данных.

 

 

«HTTP 2.0»

 

HTTP/2 — это первая крупная версия протокола HTTP, предназначенная для уменьшения задержек загрузки веб-страниц за счет реализации различных методов оптимизации. HTTP/2 был выпущен IETF (Инженерная группа Интернета) в мае 2015 года и призван стать стандартным методом связи, совместимым со всеми доступными веб-браузерами.

 

"Функции"

1. Соединения HTTP/2 являются постоянными и требуют только одного соединения для каждого источника.

2. Управление потоком: механизм, который не позволяет отправителю отправлять большие объемы данных получателю (серверу).

3. Сервер может активно передавать информацию.

HTTP 2.0

 

"Способ работы"

Хотя HTTP/1.1 и HTTP/2 используют общую семантику для облегчения связи между двумя протоколами, методы, которые они используют для доставки данных, могут существенно различаться.

 

Основные различия между HTTP/2 и HTTP/1.x заключаются в следующем:

(1) HTTP/2 кодирует сообщения запроса и ответа в двоичный формат вместо передачи обычных текстовых сообщений, которые можно увидеть при использовании HTTP/1.1.

(2) HTTP/2 полностью мультиплексирован и параллелен, что означает, что он может отправлять больше запросов к веб-сайту по сравнению с ограниченными запросами в HTTP/1.x.

(3) Используйте приоритет потока ресурсов веб-сайта.

(4) Сжатие заголовка используется для уменьшения служебных данных при обработке.

 

«HTTP 3.0»

 

HTTP/3 — это новая версия HTTP на основе сетевого протокола QUIC, выпущенная в августе 2020 года. HTTP 3.0 — это третья версия протокола передачи гипертекста (HTTP), ранее известного как HTTP-over-QUIC. QUIC (Quick UDP Internet Connections) изначально был разработан Google и является преемником HTTP 2.0. Такие компании, как Google и Facebook, уже используют QUIC для ускорения своих сетей.

 

"Способ работы"

Будучи совершенно новым протоколом, HTTP/3 может претерпеть некоторые изменения в течение следующих нескольких лет, но его основа по-прежнему будет прочно базироваться на протоколе QUIC.

 

QUIC (Quick UDP Internet Connection) — это новый протокол сетевого транспортного уровня, разработанный для значительного уменьшения задержки и повышения эффективности по сравнению с TCP. По сути, соединения устанавливаются быстрее, особенно когда условия сети неоптимальны. Поскольку QUIC уменьшает проблемы с медленным запуском TCP, скорость потоковой передачи видео может быть значительно улучшена, особенно в формате UHD и выше. Кроме того, HTTP/3 также может обеспечить повышение скорости по тем же причинам при перемещении между мобильными сетями и сетями Wi-Fi.

 

Чем HTTP/3 отличается от HTTP/1/2?

 

HTTP

 

HTTP/3 имеет несколько существенных отличий от традиционных методов, используемых в HTTP/1 и 2. Давайте посмотрим на некоторые ключевые различия.

 

①Сетевой протокол – UDP и TCP:

Наиболее очевидное различие между HTTP/3 и более старыми версиями (которые используют только TCP) заключается в том, что HTTP/3 полностью основан на QUIC, который использует UDP. UDP — это транспортный протокол, используемый для быстрой связи, посредством которого данные могут передаваться некорректно. В основном это используется для передачи видео, где получение живого изображения имеет решающее значение, а повреждение видеокадра не является серьезной проблемой.

 

Используя новый протокол QUIC, веб-серверы теперь могут отправлять параллельные запросы/ответы. Это означает, что если в одном запросе или ответе произойдет потеря пакета, другие запросы или ответы не будут остановлены из-за этого.

HTTP3 , HTTP1 , HTTP2

 

②Сжатие заголовка – QPACK и HPACK:

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

QPACK ,HPACK

 

Значение эволюции и развития HTTP 3.0

 

HTTP

 

Как и HTTP 2.0, это разработка Google. Вскоре HTTP 3.0 снова будет опираться на эти достижения. Хотя HTTP 2.0 действительно обеспечивает мультиплексирование и облегчает блокировку начала строки, на него распространяются ограничения TCP.

HTTP3, HTTP2

 

Вы можете использовать одно TCP-соединение для нескольких потоков, мультиплексированных вместе для передачи данных, но когда в одном из потоков происходит потеря пакетов, все соединение (и все его потоки) становится ограниченным, то есть до тех пор, пока TCP не завершит свою задачу (повторно не передаст потерянные пакеты). ).

 

Это означает, что в буфере узла назначения все пакеты (даже если они были переданы и ожидают) блокируются до тех пор, пока потерянный пакет не будет передан повторно. На QUIC это ограничение не распространяется. Поскольку QUIC построен на протоколе UDP без установления соединения, концепция соединений не имеет ограничений TCP, и сбой одного потока не должен влиять на остальные потоки. QUIC (Quick UDP Internet Connections) был впервые внедрен Google в 2012 году.

 

Он переопределяет границы сетевого уровня, опирается на протокол UDP нижнего уровня, переопределяет рукопожатия, функции надежности и функции безопасности в «пространстве пользователя», избегая необходимости обновления ядра интернет-системы.


Recommend