Qu’est-ce que le Server Push ?

Rappel

Les applications web communiquent via le protocole HTTP. C’est aujourd’hui un des protocoles les plus utilisés et aussi un des plus vieux. Mais le hic…c’est qu’il n’est pas prévu pour opérer en « mode connecté » ou « stateful » (ce qui diffère des connexions par sockets/connexion persistante). Il est basé sur le modèle requête-réponse où le client (navigateur web) envoie une requête au serveur qui ne fait que répondre avec une autre requête contenant les données de la réponse. Une fois la réponse donnée, il n’y a plus aucun moyen de renvoyer une autre information à ce même client. La connexion est fermée (vu qu’elle est non persistante). On dit que son mode de connexion est « non connecté » ou « stateless ». De plus, si un client envoie 2 requêtes au serveur, celui-ci n’a même pas le moyen de faire le lien entre ses 2 dernières, sauf avec l’aide de cookie ou de session.

Principe

Le principe du Server Push est de permettre au serveur d’envoyer les données au client lorsqu’il en a envi, on appelle ça plus couramment de la « notification », que l’on peut traduire en français par « pousser les données » du serveur vers le client. Malheureusement, en HTTP la notification est impossible pourtant certains sites internet réagissent comme si.

Exemple

Par exemple, le célèbre site « facebook » illustre parfaitement ce mécanisme puisque le client reçoit des notifications en « temps réel » sans à rafraichir sa page.

Le cas classique utilisant le “Server Push” est le client web de messagerie instantanée. Dans les mécanismes d’une telle application, il y a plusieurs types d’événements (nouveau message, connexion ou déconnexion d’un client) qui doivent tous être communiqués (notifier) aux clients. Et dans ce type d’application, cela doit être, comme son nom l’indique, « instantané ».

Mais alors…comment font-ils si le protocole HTTP ne le permet pas?

Avec un peu d’imagination (et du bon bricolage), on peut simuler le principe de notification du serveur vers le(s) client(s).
Nous allons voir quels sont les différents moyens de l’implanter dans le framework Google Web Toolkit (GWT), du moins élégant à la solution, qui semble être à l’heure actuelle, la plus robuste et la plus performante et qui est sur le point d’être intégrée à l’API de Servlet 3.0.

Sur internet, les termes Comet, Cometd, Bayeux, long polling, ou Reverse Ajax sont souvent associés au Server Push.

Romain LAFOND


Ecrire un commentaire

Votre courriel ne sera jamais publié ou partagé. Les champ obligatoires sont marqués *

*
*