Aller au contenu principal

2. Overview

2. Overview

Un modèle général comprend trois acteurs : le user agent, le push service et le serveur d'application.

 +-------+           +--------------+       +-------------+
| UA | | Push Service | | Application |
+-------+ +--------------+ | Server |
| | +-------------+
| Subscribe | |
|--------------------->| |
| Monitor | |
|<====================>| |
| | |
| Distribute Push Resource |
|-------------------------------------------->|
| | |
: : :
| | Push Message |
| Push Message |<---------------------|
|<---------------------| |
| | |

Figure 1 : architecture WebPush

Au début, le user agent crée un nouvel abonnement puis le transmet au serveur d'application. Cet abonnement fonde toutes les interactions futures. Le serveur d'application l'utilise pour envoyer des messages au service push ; le user agent l'utilise pour surveiller les messages entrants.

Pour mieux contrôler l'autorisation, un abonnement est modélisé comme deux ressources aux capacités différentes :

  • Une ressource d'abonnement sert à recevoir les messages et à supprimer l'abonnement. Elle est privée au user agent.

  • Une ressource push sert à envoyer des messages vers l'abonnement. Elle est publique et partagée avec le serveur d'application.

On s'attend à un abonnement unique par application, mais le protocole n'impose pas de cardinalité. Plusieurs abonnements pour une même application ou un abonnement partagé sont possibles, avec implications de sécurité et de confidentialité.

Les abonnements ont une durée de vie limitée et peuvent être terminés par le service ou le user agent à tout moment. Les deux doivent gérer les changements d'état.

2.1. HTTP Resources

Le protocole utilise des ressources HTTP [RFC7230] et des relations de lien [RFC5988]. Ressources définies :

push service : crée les abonnements (section 4). L'URL est configurée dans le user agent.

push message subscription : lecture et suppression d'un abonnement. Réception des messages (section 6). Chaque abonnement a exactement une ressource push associée.

push message subscription set : lecture et suppression d'un ensemble d'abonnements. Réception pour tous les abonnements de l'ensemble (section 6.1). La relation urn:ietf:params:push:set identifie l'ensemble.

push : le serveur d'application demande la livraison (section 5) via la ressource push. Relation urn:ietf:params:push.

push message : le service crée une ressource pour les messages acceptés (section 5). Le user agent la supprime pour accuser réception (section 6.2).

receipt subscription : le serveur d'application reçoit les confirmations (section 5.1). Relation urn:ietf:params:push:receipt.