Back to questions
СБЕР
Junior — Middle
66
Объясните принцип работы WebSocket и чем он отличается от стандартных HTTP-соединений.
Companies where asked
TechCore
Answer from AI
sobes.tech AI
WebSocket — это протокол, который обеспечивает двунаправленное (full-duplex) постоянное соединение между клиентом и сервером поверх одного TCP-соединения. В отличие от стандартного HTTP, где клиент отправляет запрос, а сервер отвечает и соединение закрывается, WebSocket устанавливает постоянное соединение, позволяя обеим сторонам обмениваться данными в любое время без повторного установления соединения.
Принцип работы:
- Клиент отправляет HTTP-запрос с заголовком
Upgrade: websocketдля инициации WebSocket-соединения. - Сервер подтверждает переход на WebSocket, и соединение переключается в двунаправленный режим.
- После установления соединения обе стороны могут отправлять сообщения в реальном времени.
Отличия от HTTP:
- HTTP — это протокол запрос-ответ, WebSocket — постоянное соединение.
- WebSocket снижает накладные расходы на установку соединения при частом обмене данными.
- WebSocket подходит для приложений с реальным временем: чаты, игры, биржевые терминалы.
Пример на Python с использованием библиотеки websockets:
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(f"Echo: {message}")
start_server = websockets.serve(echo, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()