Home >Промышленный Интернет вещей>Промышленный Интернет вещей
Подробное объяснение протокола HTTP


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


Скорочтение:

Основные характеристики протокола HTTP

Ключевое содержание протокола HTTP

HTTP-версия

  -「HTTP 1.1」

  -「HTTP 2.0」

  -「HTTP 3.0」

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

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

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





HTTP, TCP, IP, UDP

Основные возможности протокола HTTP:

 

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

(2) Передача некоторого содержимого HTML, CSS и JavaScript.

(3) Запрос и ответ

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

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

 

Основное содержание протокола HTTP:

 

Модель запрос-ответ: HTTP — это протокол, построенный на модели запрос-ответ. Клиент отправляет HTTP-запрос, сервер обрабатывает запрос и возвращает HTTP-ответ. Эта модель обеспечивает связь между клиентами и серверами.

Без сохранения состояния: HTTP — это протокол без сохранения состояния, то есть каждый запрос и ответ независимы, и сервер не сохраняет информацию из предыдущих запросов. Это позволяет HTTP-запросам быть независимыми и масштабируемыми, но также требует использования механизмов для поддержания состояния сеанса, таких как файлы cookie или идентификаторы сеанса.

 

Методы HTTP: HTTP-запросы используют разные методы для указания типа операции.

Общие методы HTTP включают в себя:

GET: используется для запроса ресурсов.

POST: используется для отправки данных, обычно используется для отправки формы.

PUT: используется для загрузки файлов или данных.

DELETE: используется для удаления указанного ресурса.

HEAD: аналогично GET, но возвращает только заголовки ответов, а не фактические данные.

ОПЦИИ: Запросить методы, поддерживаемые сервером.

PATCH: используется для частичного обновления ресурсов.

URL: унифицированный указатель ресурсов (URL) используется для идентификации ресурсов в сети. URL-адрес включает протокол, имя хоста, порт, путь и параметры запроса.

 

Код состояния: HTTP-ответы включают код состояния, указывающий результат запроса.

Общие коды состояния включают в себя:

200 ОК: запрос выполнен успешно.

404 Not Found: Запрошенный ресурс не найден.

500 Внутренняя ошибка сервера: Внутренняя ошибка сервера.

301 Перемещено навсегда: Ресурс навсегда перемещается в другое место.

Формат сообщения: HTTP-запросы и ответы соответствуют определенному формату сообщения. HTTP-запросы обычно включают строки запроса, заголовки запроса и тело запроса, а ответы HTTP включают строки ответа, заголовки ответа и тело ответа.

Постоянное соединение. Для повышения производительности в HTTP/1.1 введен механизм постоянного соединения (Keep-Alive), который позволяет нескольким запросам и ответам использовать одно TCP-соединение, сокращая накладные расходы на соединение.

Безопасность. Сам протокол HTTP не обеспечивает шифрование данных, поэтому передача данных обычно небезопасна. В целях повышения безопасности протокол HTTPS представляет механизм шифрования данных и использует протокол SSL/TLS для защиты передачи данных.

Файлы cookie: файлы cookie представляют собой механизм передачи информации о состоянии между клиентом и сервером, позволяющий серверу отслеживать состояние сеанса пользователя. Файлы cookie обычно содержат идентификаторы сеансов и другие данные для аутентификации пользователя и поддержания состояния.

Прокси и кеширование. HTTP позволяет прокси-серверам и серверам кэширования передавать и хранить ресурсы между клиентами и исходными серверами, чтобы повысить производительность и снизить нагрузку на сервер.

Протокол HTTP играет жизненно важную роль в интернет-приложениях. Он поддерживает различные операции, включая просмотр веб-страниц, загрузку файлов, загрузку данных, связь через API и т. д. В то же время небезопасность HTTP побудила принять дополнительные меры безопасности, такие как SSL/TLS и OAuth, для защиты конфиденциальности и данных пользователей.

 

Все версии протокола 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-версия


«HTTP 1.1»

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

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

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

 

«HTTP 2.0»

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


HTTP 2.0 connection

Главная особенность:

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

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

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

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


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

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

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

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

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

 

«HTTP 3.0»

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


HTTP/3 Test

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

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

 

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


HTTP 3.0 имеет несколько существенных отличий от традиционных методов, используемых в HTTP 1.x и HTTP 2.0.


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

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

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


Zero RTT Connection Establishment


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

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


HPACK


Как и HTTP 2.0, это разработка Google. Вскоре HTTP 3.0 снова будет опираться на эти достижения. Хотя HTTP 2.0 действительно обеспечивает мультиплексирование и облегчает блокировку начала строки, на него распространяются ограничения TCP. HTTP 3.0 построен через QUIC на основе протокола UDP без установления соединения, концепция соединений не имеет ограничений TCP, а сбой одного потока не должен влиять на остальные потоки. Он переопределяет границы сетевого уровня, опирается на протокол UDP нижнего уровня, переопределяет рукопожатия, функции надежности и функции безопасности в «пространстве пользователя», избегая необходимости обновления ядра интернет-системы.

HTTPS, TLS, TCP
HTTPS, QUIC, UDP


Статьи по Теме:

Где HTTP3.0 сильнее, чем HTTP2.0


Recommend