WebSocket
読み方: ウェブソケット
WebSocketとは
WebSocket(ウェブソケット)は、ウェブブラウザとウェブサーバーとの間で双方向通信を可能にするコンピューターネットワーク技術の1つです。通常、ウェブブラウザとウェブサーバー間のリアルタイムな通信を実現するために使用されます。WebSocketは、HTTPプロトコルの上に構築されていますが、通常のHTTPリクエスト/レスポンスとは異なり、接続を確立した後も双方向のデータ通信を維持します。
WebSocketの特徴
・双方向通信
WebSocketを使用すると、クライアント(通常はウェブブラウザ)とサーバーの間で双方向のリアルタイム通信が可能です。これにより、クライアントとサーバーは非同期的にデータを交換できます。
・低遅延
WebSocketは常に接続されているため、リアルタイム性が高く、他と比べて通信の遅延が少ない特性があります。これは、リアルタイムなチャットアプリやオンラインゲームなど、高速な通信が必要なアプリケーションに適しています。
・単一の接続
通常のHTTPリクエスト/レスポンスとは異なり、単一の接続を維持します。これにより、接続のオーバーヘッドが低減され、効率的な通信が可能となります。
・プロトコルのサポート
標準化されたプロトコルであり、多くのプログラミング言語やフレームワークでサポートされています。また、WebSocketを使用するためのクライアントライブラリも豊富に提供されています。
WebSocketのメリットとデメリット
■メリット
・リアルタイムでの通信が可能
リアルタイムで双方向の通信を可能にするため、クライアントとサーバー間のリアルタイムデータ更新やリアルタイムチャットなどのアプリケーションを実装するのに非常に適しています。
・低遅延なため高速のデータ転送が可能
一度接続を確立すると、継続的な接続を維持するため、通信の遅延が少なく、高速なデータ転送が可能です。リアルタイムなアプリケーションで大きく活躍します。
・クロスプラットフォーム対応
標準化されたプロトコルであり、多くのプログラミング言語やフレームワークでサポートされています。また、主要なウェブブラウザもWebSocketをサポートしているため、クロスプラットフォームでの使用が容易です。
■デメリット
・継続的な接続維持
WebSocketは、一度接続を確立すると、常時接続を維持する必要があります。これにより、サーバーのリソース消費が増加し、一定量のオープンコネクションを処理するためのスケーリングが必要になる場合があります。
・ファイアウォールやプロキシの問題
WebSocketは、通常のHTTPトラフィックとは異なるプロトコルを使用するため、一部のファイアウォールやプロキシで問題を引き起こす場合があります。
・セキュリティリスク
適切なセキュリティ対策が取られていない場合、WebSocket接続は悪用される可能性があります。したがって、セキュリティの観点から、適切な認証や暗号化の実装が必要です。
・一部の古いブラウザのサポート不足
一部の古いブラウザはWebSocketを完全にサポートしていない場合があります。したがって、クロスブラウザの互換性を確保するためには、代替手段を提供する必要があります。
現場の声
弊社でもチャットのようなリアルタイム性が求められる機能の開発においては、WebSocketを利用しています。要件によってはWebSocketサーバーを構築するといったケースもありますが、AWS API GatewayのようなサーバレスなWebSocketサービスを利用すると低コストで実現することができます。
<執筆・監修>
アルサーガパートナーズ株式会社 DX技術用語集制作チーム
(2024年2月時点)