Мое понимание HTTP-опроса, длинного опроса, HTTP-потоковой передачи и веб-сокетов

Я прочитал много постов на SO и в Интернете относительно ключевых слов в заголовке моего вопроса и многому научился у них. Некоторые из вопросов, которые я прочитал, связаны с конкретными проблемами реализации, тогда как другие сосредоточены на общих понятиях. Я просто хочу убедиться, что я понял все концепции и причины, по которым технология X была изобретена над технологией Y и так далее. Итак, здесь идет:

Http Polling: В основном AJAX, используя XmlHttpRequest.

Http Long Polling: AJAX, но сервер удерживает ответ, если только у сервера нет обновления, как только сервер получает обновление, он отправляет его, а затем клиент может отправить другой запрос. Недостатком являются дополнительные данные заголовка, которые необходимо отправлять взад и вперед, вызывая дополнительные издержки.

Http Streaming: Аналогично длинному опросу, но сервер отвечает заголовком с «Transfer Encoding: chunked» и, следовательно, нам не нужно инициировать новый запрос каждый раз, когда сервер отправляет некоторые данные (и, следовательно, сохранять дополнительные заголовки). Недостатком здесь является то, что мы должны «понимать» и выяснить структуру данных, чтобы различать несколько фрагментов, отправленных сервером.

Java Applet, Flash, Silverlight: Они предоставляют возможность подключения к сокет-серверам через tcp / ip, но поскольку они являются плагинами, разработчики не хотят зависеть от них.

WebSockets: это новый API, который пытается устранить недостатки вышеуказанных методов следующим образом:

The only advantage of WebSockets over plugins like Java Applets, Flash or Silverlight is that WebSockets are natively built into browsers and does not rely on plugins. The only advantage of WebSockets over http streaming is that you don't have to make an effort to "understand" and parse the data received. The only advantage of WebSockets over Long Polling is that of elimination of extra headers size & opening and closing of socket connection for request.

Есть ли другие существенные различия, которые я пропускаю? Мне очень жаль, если я переспрашиваю или объединяю многие вопросы, уже относящиеся к SO, в один вопрос, но я просто хочу иметь смысл из всей информации, которая есть на SO и в Интернете, относительно этих концепций.

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос