Я прочитал много сообщений о SO и в Интернете относительно ключевых слов в моем заголовке вопроса и многому научился у них. Некоторые из вопросов, которые я читаю, связаны с конкретными задачами реализации, в то время как другие сосредоточены на общих концепциях. Я просто хочу удостовериться, что я понял все концепции и рассуждения о том, почему технология X была изобретена по технологии Y и так далее. Итак, вот:
Опрос Http: В основном AJAX, используя XmlHttpRequest.
Http Long Polling: AJAX, но сервер держит ответ, если у сервера нет обновления, как только сервер получит обновление, он отправит его, а затем клиент может отправить другой запрос, Недостаток - это дополнительные данные заголовка, которые необходимо отправлять назад и вперед, вызывая дополнительные накладные расходы.
Http Streaming:. Подобно длинному опросу, но сервер отвечает заголовком "Transfer Encoding: chunked", и поэтому нам не нужно инициировать новый запрос каждый раз, когда сервер отправляет некоторые данные ( и, следовательно, сохранить дополнительные служебные данные заголовка). Недостатком здесь является то, что мы должны "понять" и выяснить структуру данных, чтобы различать несколько кусков, отправленных сервером.
Java Applet, Flash, Silverlight: Они предоставляют возможность подключения к серверам сокетов по сравнению с tcp/ip, но поскольку они являются плагинами, разработчики не хотят зависеть от них.
WebSockets: это новый API, который пытается устранить короткие приемы описанных выше методов следующим образом:
- Единственное преимущество WebSockets над плагинами, такими как Java-апплеты, Flash или Silverlight, заключается в том, что WebSockets встроены в браузеры и не полагаются на плагины.
- Единственное преимущество WebSockets над потоком HTTP заключается в том, что вам не нужно прилагать усилия, чтобы "понять" и проанализировать полученные данные.
- Единственным преимуществом WebSockets для Long Polling является исключение дополнительного размера заголовков и открытие и закрытие соединения сокетов для запроса.
Есть ли другие существенные отличия, которые мне не хватает? Прошу прощения, если я повторно задаю или объединю многие вопросы, уже находящиеся на SO, в один вопрос, но я просто хочу получить полное представление обо всей информации, которая находится там в SO и в Интернете, в отношении этих понятий.
Спасибо!