Постоянное соединение HTTP против соединения через сокет TCP

Из этой статьи в Википедии:

Сообщения поддержки активности официально не поддерживаются в HTTP 1.0. В HTTP 1.1 все соединения считаются постоянными, если не указано иное.

  • Означает ли это, что с помощью этого механизма я могу смоделировать соединение через сокет TCP?
  • Используя это, я могу заставить сервер "проталкивать" данные клиенту?
  • Все ли HTTP-соединения, даже те, которые я использую для подключения к переполнению стека, "постоянны HTTP"?
  • Использует ли технология COMET сервера push push этот механизм постоянного соединения HTTP для передачи данных клиентам?

2 ответа

Решение
  • Означает ли это, что с помощью этого механизма я могу смоделировать соединение через сокет TCP?

Не совсем, сокеты имеют МНОГОЕ больше функций и гибкости.

  • Используя это, я могу заставить сервер "проталкивать" данные клиенту?

Не напрямую, это все еще протокол запроса / ответа; Постоянное соединение означает, что клиент может использовать один и тот же базовый сокет для отправки нескольких запросов и получения соответствующих ответов.

  • Все ли HTTP-соединения, даже те, которые я использую для подключения к переполнению стека, "постоянны HTTP"?

Если ваш браузер (или особый сервер) не говорит иначе, да.

  • Использует ли технология COMET сервера push push этот механизм постоянного соединения HTTP для передачи данных клиентам?

Вроде (для потоковой передачи, по крайней мере), но с большим количеством взбитых сливок сверху. Существуют и другие подходы к реализации Comet, такие как скрытые iframes и длинный опрос AJAX, которые могут не требовать постоянных соединений (которые в любом случае дают некоторые брандмауэры и т.п.);

На самом деле, HTTP-сервер может "отправить" данные на подключенный http-клиент без запроса клиента. См. "HTTP server push" по адресу http://en.wikipedia.org/wiki/Push_technology. Однако это, кажется, обычно реализуется.

Другие вопросы по тегам