WebSocketとは

うぇぶそけっと

ブラウザとサーバの間で、1つの接続を開いたまま、どちらからでもいつでもメッセージを送れるようにする通信の方式。HTTPのリクエストで Upgrade: websocket を求め、サーバが 101 Switching Protocols を返すと、同じTCP接続をWebSocketの通信に切り替える。URLのスキームには ws と、TLSで保護した wss を使う。チャットや共同編集、相場の表示のように、サーバから新しい情報をすぐに届けたい用途で、一定の間隔で問い合わせる方式より通信の量と遅れを減らせる。

「WebSocket」は、1分野の1問の練習問題に出てきます(Web技術の基礎など)。

この用語の分野: Web技術の基礎

WebSocketの練習問題に挑戦

チャットのアプリで、新しいメッセージをサーバからブラウザへすぐに届けたい。WebSocketの説明として正しいものはどれか。

  1. Aブラウザが数秒ごとにHTTPのリクエストを送り、新しいメッセージが届いていないかを、そのたびにサーバに確かめる方式である
  2. BHTTPで始めた接続を切り替えて(アップグレード)、1つの接続の上でサーバとブラウザのどちらからでもメッセージを送れるようにする
  3. Cイベントが起きたときに、サーバから別のサーバの、あらかじめ登録されたURLへ、HTTPのPOSTのリクエストで知らせる方式である
答えと解説を見る

正解:B. HTTPで始めた接続を切り替えて(アップグレード)、1つの接続の上でサーバとブラウザのどちらからでもメッセージを送れるようにする

WebSocketは、HTTPのリクエストで Upgrade: websocket を求め、サーバが 101 Switching Protocols を返すと、同じTCP接続をWebSocketの通信に切り替えます。その後は接続を開いたままにして、サーバとブラウザのどちらからでも、小さなメッセージを少ない手間で送れます。一定の間隔で問い合わせる方式では、新着がなくてもリクエストが発生し、新着が届くまでに最大で問い合わせの間隔だけ遅れます。サーバからサーバへHTTPのPOSTで知らせる方式は、Webhookと呼ばれます。

解説の中の「WebSocket」

「WebSocket」が出てくる問題(1問)

  1. チャットのアプリで、新しいメッセージをサーバからブラウザへすぐに届けたい。WebSocketの説明として正しいものはどれか。

Web技術の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

HTTP イベントループ HTTPステータスコード HTTPメソッド OAuth Cookie CORS(オリジン間リソース共有) サーバサイドレンダリング(SSR) JSON JWT(JSON Web Token)

用語集の一覧へ