Le protocole WebPush est défini par la RFC 8030 (Delivery using HTTP Push) et la RFC 8291 (Message Encryption).
Web Push est un protocole standardisé pour la livraison de notifications push aux navigateurs web. Il utilise l'API Push, qui est une API web standard permettant aux sites web de s'enregistrer et de recevoir des messages push. L'API Push permet à un site web d'envoyer des messages push au navigateur d'un utilisateur, même lorsque l'utilisateur ne navigue pas activement sur le site.
Pour utiliser Web Push, un site web doit d'abord obtenir un abonnement push du navigateur de l'utilisateur. L'abonnement se compose d'une URL de point de terminaison unique et d'une clé de chiffrement. L'URL de point de terminaison est utilisée par le site web pour envoyer des messages push au navigateur de l'utilisateur, et la clé de chiffrement est utilisée pour chiffrer et déchiffrer les messages push.
Une fois que le site web a obtenu un abonnement push, il peut envoyer des messages push au navigateur de l'utilisateur en effectuant une requête HTTP vers l'URL du point de terminaison. Le message push est envoyé dans un format spécial appelé le message du protocole Web Push, qui se compose d'un ensemble d'en-têtes et d'une charge utile. Les en-têtes contiennent des informations telles que la clé de chiffrement et le TTL (durée de vie) du message, tandis que la charge utile contient le contenu réel du message.
Lorsque le navigateur de l'utilisateur reçoit un message push, il déchiffre d'abord le message à l'aide de la clé de chiffrement. Il affiche ensuite la notification à l'utilisateur, accompagnée de toute action supplémentaire que l'utilisateur peut effectuer, comme ignorer la notification ou ouvrir le site web.
Pour garantir la sécurité et la confidentialité des messages push, Web Push utilise le chiffrement de bout en bout et exige que les abonnements push soient obtenus via une connexion sécurisée (par ex. HTTPS). De plus, le protocole fournit des mécanismes pour authentifier l'expéditeur d'un message push et prévenir les abus (par ex. en limitant le nombre de messages push qu'un site web peut envoyer à un utilisateur).
Il existe 2 composants qui prennent en charge WebPush :