ポーリング (polling) は、クライアントが一定間隔でサーバーへ問い合わせ、新しいデータがあれば受け取る 方式です。
サーバーから勝手に届くのではなく、クライアント側が能動的に取りに行く のが特徴で、定期問い合わせ 巡回 などと訳されます。
まず押さえたいポイント
- 一定間隔でリクエストを繰り返すのが基本形 (定期ポーリング / short polling)
- 普通の HTTP リクエストだけで成立し、実装がシンプル
- サーバーは聞かれたときに今の状態を返すだけでよく、接続状態を覚えなくてよい (ステートレス)
- 更新がなくても問い合わせるため、
空振りリクエストが発生しやすい
メリットとデメリット
- メリット — 実装が簡単 / プロキシやファイアウォールを素直に通る / 失敗しても次の問い合わせで回復する
- デメリット — 空振りが多い / 間隔を短くすると負荷と通信量が増える / 間隔を長くすると反映が遅れる
反映の速さは 問い合わせ間隔 で決まります。30 秒間隔なら最悪 30 秒前の状態を見ていることになり、速くしたいほどサーバー負荷が上がるトレードオフがあります。
関連する方式との違い
ロングポーリング— 更新が出るまでサーバーが応答を保留する改良版。空振りを減らせる- SSE — サーバーからクライアントへ一方向に配信する。通知や進捗向き
- WebSocket — 接続を開いたまま双方向にやり取りする。チャットや共同編集向き
- Webhook — イベント発生時に相手サーバーから通知してもらう。サーバー間連携向き
これらは ポーリングの上位互換 ではなく、通信の方向や前提が違う別の道具です。
よくある誤解
ポーリングは時代遅れ ではありません。数十秒〜数分の遅延が許される場面では、最もシンプルで壊れにくい選択肢です。むしろ最初から全部 WebSocket にすると、接続維持や再接続の運用で苦労しがちです。まずポーリングで作り、本当に即時性が要る画面だけ高度な方式に置き換える のが現実的です。
詳しくは ポーリングとは?更新の取り方とロングポーリング・SSE・WebSocket・Webhookの使い分け で、5 方式の選び方と実装の注意点を整理しています。