WebSockets - Функциональные возможности
Web Socket представляет собой крупное обновление в истории веб-коммуникаций. До своего существования вся связь между веб-клиентами и серверами основывалась только на HTTP.
Web Socket помогает в динамическом потоке соединений, которые являются постоянными полнодуплексными. Полный дуплекс - это связь с обоих концов со значительной скоростью.
Его называют революционным из-за того, что он позволяет преодолеть все недостатки существующих протоколов.
Веб-сокет для разработчиков и архитекторов
Важность Web Socket для разработчиков и архитекторов -
Web Socket - это независимый протокол на основе TCP, но он разработан для поддержки любого другого протокола, который традиционно работал бы только поверх чистого TCP-соединения.
Веб-сокет - это транспортный уровень, на котором может работать любой другой протокол. Web Socket API поддерживает возможность определять подпротоколы: библиотеки протоколов, которые могут интерпретировать определенные протоколы.
Примеры таких протоколов включают XMPP, STOMP и AMQP. Разработчикам больше не нужно думать в терминах парадигмы HTTP-запроса-ответа.
Единственное требование на стороне браузера - запустить библиотеку JavaScript, которая может интерпретировать рукопожатие Web Socket, устанавливать и поддерживать соединение Web Socket.
На стороне сервера промышленным стандартом является использование существующих библиотек протоколов, которые работают поверх TCP и используют шлюз веб-сокетов.
На следующей диаграмме описаны функции веб-сокетов -
Соединения через веб-сокеты инициируются через HTTP; HTTP-серверы обычно интерпретируют рукопожатия Web Socket как запрос на обновление.
Веб-сокеты могут быть как дополнительным дополнением к существующей среде HTTP, так и обеспечивать необходимую инфраструктуру для добавления веб-функций. Он основан на более продвинутых полнодуплексных протоколах, которые позволяют передавать данные в обоих направлениях между клиентом и сервером.
Функции веб-сокетов
Веб-сокеты обеспечивают соединение между веб-сервером и клиентом, так что обе стороны могут начать отправку данных.
Шаги для установления соединения с веб-сокетом следующие:
Клиент устанавливает соединение с помощью процесса, известного как рукопожатие веб-сокета.
Процесс начинается с того, что клиент отправляет серверу обычный HTTP-запрос.
Запрошен заголовок Upgrade. В этом запросе он сообщает серверу, что запрос предназначен для подключения к веб-сокету.
URL-адреса веб-сокетов используют wsсхема. Они также используются для безопасных соединений через веб-сокеты, которые эквивалентны HTTP.
Простой пример заголовков начального запроса выглядит следующим образом:
GET ws://websocket.example.com/ HTTP/1.1
Origin: http://example.com
Connection: Upgrade
Host: websocket.example.com
Upgrade: websocket