Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

WebSocketの概要を2分で簡単に解説


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20211230101203p:plain

おはようございます。Shotaです。

今回の記事では、WebSocketについて2分で解説します。


WebSocket

WebSocketとは、Webにおいて双方向通信を低コストで行うための仕組みです。通信プロトコルの一種です。

WebSocketを使うことで、一度通信を行えば通常のHTTP通信では実現できないサーバ起点のデータ送信ができるようになります。そのため、リロードなしのリアルタイムのデータ更新が簡単にできます。

WebSocketの主な機能

サーバプッシュ機能

一度コネクションを確立した後は、サーバとクライアントのどちらからも通信ができます。

通信量削減

一度コネクションを確立するとそのコネクション上で通信を行います(HTTPのように、通信のたびにコネクションを切らない)。ヘッダーのサイズが軽量です。

WebSocketでは、まずコネクションの確率(ハンドシェイク)を行うことで、双方向通信を実現できます。

通信の仕組み①~ハンドシェイク~

ハンドシェイクはHTTP通信で行われます。

リクエスト(Request)
HTTPのUpgradeヘッダを活用して、プロトコルを変更します。

レスポンス(Response)
ステータスコード101(Switching Protocols)を返します。
ハンドシェイクでコネクションが確立され、これ以降はHTTPではなくWebSocketのプロトコルで通信が行われます。送信データはフレームという単位で扱われます。

「socket.io」とは

socket.ioはリアルタイムの双方向通信を可能にするNode.jsライブラリとブラウザ用ライブラリのセットです。簡単にリアルタイムや双方向通信を実現できます。

まとめ

今回の記事では、WebSocketのざっくりとした概要を簡単に解説しました。

今回の記事を参考に、WebSocketについて理解を深めていただければ幸いです。

今回の記事はこれで終了です。

参考サイト

e-words.jp

ja.javascript.info

zenn.dev