【うぇぶぷっしゅつうち】

Web Push通知 とは?

公開:
💡 ブラウザがスマホアプリみたいに「ピコン!」って教えてくれる仕組みだよ
📌 このページのポイント
Web Push通知の仕組み Webサーバー 通知を送信 VAPID プッシュサービス FCM / APNs / Mozilla Push ブラウザ Service Worker (バックグラウンド受信) example.com 新着記事が 公開されました ユーザー登録フロー 通知を許可 サブスクリプ ション発行 サーバーに 登録
Web Push通知の配信と登録の仕組み
ひよこ ひよこ
Web Push通知って普通のプッシュ通知と何が違うの?
ペンギン先生 ペンギン先生
普通のプッシュ通知はスマホにアプリをインストールして受け取るけど、Web Push通知ブラウザさえあれば受け取れるんだよ。アプリを入れなくてもWebサイトから「通知を許可しますか?」って聞かれたことない?
ひよこ ひよこ
ある!あれってどういう仕組みなの?
ペンギン先生 ペンギン先生
3つの要素が連携しているよ。まずService Workerブラウザの裏側で常駐して通知を受け取る役割を担う。次にPush APIサーバーからの通知を受信する窓口になる。最後にNotification APIが実際に画面にポップアップを表示するんだ。
ひよこ ひよこ
ブラウザを閉じてても届くの?
ペンギン先生 ペンギン先生
そこがWeb Pushのすごいところで、Service Workerブラウザのバックグラウンドで動くから、Webサイトを開いていなくても通知が届くんだよ。ただしブラウザ自体が完全に終了していると届かない場合もあるね。
ひよこ ひよこ
でも「通知を許可しますか」ってしつこく出るサイトがあって困るんだけど…
ペンギン先生 ペンギン先生
それは業界でも問題になっていて、ChromeやFirefoxは「通知の許可プロンプト」を抑制する仕組みを導入しているよ。ユーザーが何度も拒否したサイトは自動的にプロンプトを出せなくなるんだ。
ひよこ ひよこ
サーバー側はどうやって通知を送るの?
ペンギン先生 ペンギン先生
ユーザーが許可すると、ブラウザが「サブスクリプション情報」を発行するよ。サーバーはそれを保存しておいて、通知したいときにブラウザベンダーのプッシュサービスにリクエストを送る。するとプッシュサービスがユーザーのブラウザに届けてくれるんだ。
ひよこ ひよこ
ブラウザベンダーを経由するんだね!セキュリティは大丈夫なの?
ペンギン先生 ペンギン先生
通知の内容はVAPID(Voluntary Application Server Identification)という仕組みで暗号化されるから、途中のプッシュサービスも中身は読めないよ。公開鍵暗号を使っていて、サーバーが秘密鍵で署名し、ブラウザだけが復号できる設計になっているんだ。
ひよこ ひよこ
へぇ、ちゃんとセキュリティも考えられてるんだね!
ペンギン先生 ペンギン先生
そうだね。ちなみにiOSのSafariは長らくWeb Pushに対応していなかったんだけど、2023年からようやくサポートが始まったよ。PWAとWeb Pushを組み合わせると、ネイティブアプリとほぼ同じ体験がブラウザだけで実現できる時代になってきたんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Web Push通知」って出てきたら「ブラウザ経由でアプリなしでも届くプッシュ通知」と思えればだいたいOK!
📖 おまけ:英語の意味
「Web Push Notification」 = Web経由のプッシュ通知
💬 Push(押す)の名前のとおり、サーバーからユーザーに向けて情報を「押し出す」仕組みだよ
← 用語集にもどる