WebPush

RFC 8030

RFC 8291

 

El protocolo WebPush está definido por el RFC 8030 (Entrega mediante HTTP Push) y el RFC 8291 (Cifrado de mensajes).

 

Web Push es un protocolo estandarizado para entregar notificaciones push a navegadores web. Utiliza la Push API, que es una API web estándar que permite a los sitios web registrarse y recibir mensajes push. La Push API permite a un sitio web enviar mensajes push al navegador de un usuario, incluso cuando el usuario no está navegando activamente por el sitio web.

 

Para usar Web Push, un sitio web primero necesita obtener una suscripción push del navegador del usuario. La suscripción consiste en una URL de endpoint única y una clave de cifrado. La URL de endpoint es una URL que el sitio web puede usar para enviar mensajes push al navegador del usuario, y la clave de cifrado se utiliza para cifrar y descifrar los mensajes push.

 

Una vez que el sitio web ha obtenido una suscripción push, puede enviar mensajes push al navegador del usuario realizando una solicitud HTTP a la URL del endpoint. El mensaje push se envía en un formato especial denominado mensaje del Protocolo Web Push, que consta de un conjunto de cabeceras y una carga útil. Las cabeceras contienen información como la clave de cifrado y el TTL (time-to-live) del mensaje, mientras que la carga útil contiene el contenido real del mensaje.

 

Cuando el navegador del usuario recibe un mensaje push, primero descifra el mensaje utilizando la clave de cifrado. A continuación, muestra la notificación al usuario, junto con cualquier acción adicional que este pueda realizar, como descartar la notificación o abrir el sitio web.

 

Para garantizar la seguridad y privacidad de los mensajes push, Web Push utiliza cifrado de extremo a extremo y requiere que las suscripciones push se obtengan a través de una conexión segura (p. ej., HTTPS). Además, el protocolo proporciona mecanismos para autenticar al remitente de un mensaje push y prevenir el abuso (p. ej., limitando el número de mensajes push que un sitio web puede enviar a un usuario).

 

Componentes

Hay 2 componentes que admiten WebPush: