Почему не делают текущие websocket клиентские реализации поддерживают прокси?

Веб-Сокет обнаруживает присутствие прокси-сервера и автоматически создает туннель для прохождения через прокси. Туннель устанавливается путем делания заявления HTTP CONNECT к прокси-серверу, который запрашивает на прокси-сервер открыть соединение TCP/IP с определенным хостом и портом. Как только туннель создан, коммуникация может течь беспрепятственная через прокси. Начиная с работ HTTP/S подобным способом безопасные веб-Сокеты по SSL могут усилить тот же метод ПОДКЛЮЧЕНИЯ HTTP. [1]

Хорошо, полезные звуки! Но, в клиентских реализациях я видел к настоящему времени (Пойдите [2], Java [3]), я не вижу ничего связанного с обнаружением прокси.

Я пропускаю что-то, или эти реализации просто молоды? Я знаю, что WebSockets является чрезвычайно новым, и клиентские реализации могут быть одинаково молодыми и незрелыми. Я просто хочу знать, пропускаю ли я что-то об обнаружении прокси и обработке.

[1] http://www.kaazing.org/confluence/display/KAAZING/What+is+an+HTML+5+WebSocket

[2] http://golang.org/src/pkg/websocket/client.go

[3] http://github.com/adamac/Java-WebSocket-client/raw/master/src/com/sixfire/websocket/WebSocket.java

27
задан z8000 4 February 2010 в 16:30
поделиться

3 ответа

Ответ заключается в том, что эти клиенты просто не поддерживают прокси. -Occam

1
ответ дан 28 November 2019 в 05:17
поделиться

Канал связи уже установлен к тому моменту, когда протокол WebSocket входит в сцену. WebSocket построен на основе TCP и HTTP, поэтому вам не нужно беспокоиться о том, что уже сделано этими протоколами, включая прокси.

Когда устанавливается соединение WebSocket, оно всегда начинается с соединения HTTP / TCP, которое позже «обновляется» во время фазы «рукопожатия» WebSocket. На данный момент туннель установлен, поэтому прокси-серверы прозрачны, о них не нужно заботиться.

1
ответ дан 28 November 2019 в 05:17
поделиться

Позвольте мне попытаться объяснить различные показатели успеха, с которыми вы, возможно, столкнулись. Хотя сам протокол HTML5 Web Socket не знает о прокси-серверах и брандмауэрах, он поддерживает HTTP-совместимое рукопожатие, так что HTTP-серверы могут совместно использовать свои порты HTTP и HTTPS по умолчанию (80 и 443) со шлюзом или сервером веб-сокетов.

Протокол WebSocket определяет префиксы ws: // и wss: // для обозначения соединений WebSocket и WebSocket Secure соответственно. Обе схемы используют механизм обновления HTTP для обновления до протокола Web Socket. Некоторые прокси-серверы безвредны и прекрасно работают с веб-сокетами; другие будут препятствовать правильной работе веб-сокетов, что приведет к сбою соединения. В некоторых случаях может потребоваться дополнительная настройка прокси-сервера, а некоторые прокси-серверы могут потребовать обновления для поддержки веб-сокетов.

Если незашифрованный трафик WebSocket проходит через явный или прозрачный прокси-сервер на своем пути к серверу WebSocket, то, независимо от того, будет ли прокси-сервер вести себя должным образом, соединение почти наверняка выйдет из строя сегодня (в будущем, прокси-серверы могут быть осведомлены о веб-сокетах). Поэтому незашифрованные соединения WebSocket следует использовать только в простейших топологиях.

Если используется зашифрованное соединение WebSocket, то использование Transport Layer Security (TLS) в безопасном соединении Web Sockets гарантирует выдачу команды HTTP CONNECT, когда браузер настроен на использование явного прокси-сервера. Это устанавливает туннель, который обеспечивает низкоуровневую сквозную TCP-связь через HTTP-прокси между клиентом Web Sockets Secure и сервером WebSocket. В случае прозрачных прокси-серверов браузер не знает о прокси-сервере, поэтому HTTP CONNECT не отправляется. Однако, поскольку проводной трафик зашифрован, промежуточные прозрачные прокси-серверы могут просто пропускать зашифрованный трафик, поэтому гораздо больше шансов, что соединение WebSocket будет успешным, если используется Web Sockets Secure. Использование шифрования, конечно, не бесплатно, но часто обеспечивает самый высокий уровень успеха.

Один из способов увидеть это в действии - загрузить и установить Kaazing WebSocket Gateway - высокооптимизированный шлюз WebSocket с поддержкой прокси, который обеспечивает встроенную поддержку WebSocket, а также полную эмуляцию стандарта для старых браузеров.

43
ответ дан 28 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: