4
HTTPポーリング、ロングポーリング、HTTPストリーミング、およびWebSocketについての私の理解
質問タイトルのキーワードについて、SOとWebに関する多くの投稿を読み、それらから多くのことを学びました。私が読んだ質問のいくつかは特定の実装の課題に関連しており、他の質問は一般的な概念に焦点を当てています。すべての概念とテクノロジーXがテクノロジーYよりも発明された理由などを確実に理解したいだけです。だからここに行く: HTTPポーリング:基本的にAJAX、XmlHttpRequestを使用。 HTTPロングポーリング: AJAXですが、サーバーに更新がない限り、サーバーは応答を保持します。サーバーが更新を取得するとすぐに、サーバーはそれを送信し、クライアントは別の要求を送信できます。不利な点は、前後に送信する必要がある追加のヘッダーデータが原因で追加のオーバーヘッドが発生することです。 Httpストリーミング:ロングポーリングに似ていますが、サーバーは「Transfer Encoding:chunked」のヘッダーで応答するため、サーバーがデータを送信するたびに新しいリクエストを開始する必要はありません(したがって、追加のヘッダーオーバーヘッドを節約できます)。ここでの欠点は、サーバーから送信された複数のチャンクを区別するために、データの構造を「理解」して理解する必要があることです。 Javaアプレット、Flash、Silverlight: tcp / ipを介してソケットサーバーに接続する機能を提供しますが、プラグインであるため、開発者はそれらに依存したくありません。 WebSockets:これらは、上記のメソッドの短所を次のように解決しようとする新しいAPIです。 Javaアプレット、Flash、Silverlightなどのプラグインに対するWebSocketの唯一の利点は、WebSocketがブラウザにネイティブに組み込まれており、プラグインに依存しないことです。 HTTPストリーミングに対するWebSocketの唯一の利点は、受信したデータを「理解」して解析するための努力をする必要がないことです。 ロングポーリングに対するWebSocketsの唯一の利点は、余分なヘッダーサイズを排除し、リクエスト用のソケット接続を開閉することです。 私が見逃している他の重要な違いはありますか?既にSOに関する質問の多くを1つの質問に再質問または組み合わせている場合は申し訳ありませんが、これらの概念に関してSOおよびWebにあるすべての情報から完全に理解したいと思います。 ありがとう!