WebPush

RFC 8030

RFC 8291

 

WebPush プロトコルは RFC 8030 (HTTP Push を使用した配信) および RFC 8291 (メッセージ暗号化) によって定義されています。

 

Web Push は、ウェブブラウザへのプッシュ通知配信のための標準化されたプロトコルです。Push API を使用しており、これはウェブサイトがプッシュメッセージを登録および受信できる標準のウェブ API です。Push API により、ウェブサイトはユーザーが積極的にサイトを閲覧していない場合でも、ユーザーのブラウザにプッシュメッセージを送信できます。

 

Web Pushを使用するには、Webサイトはまずユーザーのブラウザーからpushサブスクリプションを取得する必要があります。サブスクリプションは、一意のエンドポイントURLと暗号化キーで構成されます。エンドポイントURLは、Webサイトがユーザーのブラウザーにpushメッセージを送信するために使用できるURLであり、暗号化キーはpushメッセージの暗号化と復号化に使用されます。

 

ウェブサイトがプッシュサブスクリプションを取得すると、エンドポイント URL への HTTP リクエストを行うことでユーザーのブラウザにプッシュメッセージを送信できます。プッシュメッセージは Web Push Protocol Message と呼ばれる特別な形式で送信されます。これは一連のヘッダーとペイロードから構成されています。ヘッダーには暗号化キーやメッセージの TTL(有効期限)などの情報が含まれ、ペイロードにはメッセージの実際のコンテンツが含まれます。

 

ユーザーのブラウザがプッシュメッセージを受信すると、まず暗号化キーを使用してメッセージを復号化します。その後、通知を解除するか Web サイトを開くなどのユーザーが実行できる追加のアクションとともにユーザーに通知を表示します

 

プッシュメッセージのセキュリティとプライバシーを確保するために、Web Push はエンドツーエンド暗号化を使用し、セキュアな接続(例:HTTPS)を通じてプッシュサブスクリプションを取得する必要があります。さらに、このプロトコルはプッシュメッセージの送信者を認証し、悪用を防ぐメカニズムを提供します(例:ウェブサイトがユーザーに送信できるプッシュメッセージの数を制限するなど)。

 

コンポーネント

WebPush をサポートする2つのコンポーネントがあります: