Web技術の基礎
オンライン決済のサービスで支払いが完了したことを、加盟店のサーバがすぐに知りたい。決済サービスが、あらかじめ登録された加盟店のURLへHTTPのPOSTで通知を送る方式(Webhook)の説明として、正しいものはどれか。
- A加盟店が決済サービスに一定の間隔で問い合わせる必要がなく、変化が起きたときだけ通知が届く。届いた通知が本物かは、署名などで確かめる
- B加盟店のサーバは外部からのリクエストを受け付ける必要がないので、通知を受けるURLをインターネットに公開しなくてよい
- C通知はブラウザとの間に張ったWebSocketの接続で届くので、加盟店の担当者が常にブラウザを開いておく必要がある
答えと解説を見る
正解:A. 加盟店が決済サービスに一定の間隔で問い合わせる必要がなく、変化が起きたときだけ通知が届く。届いた通知が本物かは、署名などで確かめる
Webhookでは、出来事が起きた側のサービスが、受け取る側の登録したURLへHTTPのリクエストを送って知らせます。受け取る側が状態を繰り返し問い合わせる方式と比べて、無駄なリクエストがなく、変化をすぐに知ることができます。その代わり、受け取る側はインターネットから届くリクエストを受け付ける必要があるので、共有の秘密の鍵による署名などで、通知が本物かを確かめます。通知は失敗すると再送されることがあるので、同じ通知が2回届いても問題が起きないように処理します。
- A. 正しい。変化が起きたときだけ通知が届き、署名などで送り主を確かめます。
- B. 通知はHTTPのリクエストとして外から届くので、受け取るURLを公開する必要があります。
- C. Webhookはサーバどうしの通知で、ブラウザやWebSocketは使いません。