Каково принципиальное различие между WebSockets и чистым TCP?

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

154
задан xap4o 21 April 2010 в 08:17
поделиться

1 ответ

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

Через Интернет вы общаетесь с чужим сервером на другом конце. У них крайне маловероятно, чтобы какой-либо старый сокет был открыт для соединений. Обычно у них будет всего несколько стандартных, например порт 80 для HTTP или 443 для HTTPS. Итак, для связи с сервером вы должны подключиться через один из этих портов.

Учитывая, что это стандартные порты для веб-серверов, которые обычно используют HTTP, вы обязаны соответствовать протоколу HTTP, иначе сервер не будет разговаривать с вами. Назначение веб-сокетов - позволить вам инициировать соединение через HTTP, но затем согласовать использование протокола веб-сокетов (при условии, что сервер может это сделать), чтобы разрешить поток связи, более похожий на «сокет TCP».

242
ответ дан 23 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

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