通信の歴史(なぜWebSocketを使うのか)

まず通信の形として、HTTP通信というものがある。

これはクライアント(ユーザー、ブラウザなど)からの要求(リクエスト)にサーバが応答(レスポンス)を返すという形でしか通信できない。

HTTP通信メモ.jpg

問題点

HTTPはクライアント(ブラウザ)からリクエストしてサーバからレスポンスが返る一問一答型のプロトコルなので、基本的にはサーバ側からクライアント側に新着情報をリアルタイムで通知(プッシュ)できるようには出来ていない。

サーバー側からクライアント側に新着情報をリアルタイムで通知する方法

ちなみに

SSEははあくまでも サーバ -> クライアント(一方向) のデータのプッシュのみをサポートしている。

それに対して、Websockets では サーバ <-> クライアント間での双方向のリアルタイム通信が可能である。

プッシュの歴史リンク

HTTPサーバーからPushする技術の進化【まとめ】