- Server push
-
Le Server Push est un mode de communication client-serveur dans lequel le dialogue est lancé par le serveur. Cette technique s'oppose donc au fonctionnement « classique » des transactions web où le client ouvre le dialogue, et tire vers lui l'information (pull).
Sommaire
Description
Afin de permettre son fonctionnement, la technique push impose une autorisation préalable du client sur le modèle de l'abonnement. Le client s'abonne au service et dès qu'une nouvelle information est disponible, elle est envoyée par le serveur.
Des applications telles que la visioconférence ou la messagerie instantanée sont de parfaits exemples d'utilisation de cette technique : dès que le serveur central reçoit un message (ou n'importe quel autre type de données) de l'un des participants, il l'envoie aux autres. Les réseaux IRC et P2P fonctionnent sur le même principe.
Le protocole SMTP des courriels fonctionne aussi sur le principe du server push, bien qu'une partie de la transaction complète soit en mode pull (protocoles IMAP et POP3). Les clients de messagerie modernes simulent le push en interrogeant fréquemment le serveur sur l'arrivée éventuelle de nouveau courrier. Notons toutefois que le protocole IMAP supporte nativement le push grâce à la commande IDLE.
Techniques
HTTP server push
Le HTTP server push (parfois nommé HTTP streaming) est le nom donné à la technique push appliquée au protocole HTTP. Plusieurs méthodes permettent d'aboutir à un push serveur, la plus commune étant d'empêcher le serveur de clore la transaction. La connexion client-serveur reste ainsi ouverte, ce qui permet de mettre à jour instantanément les données chez les clients liés et évite de créer des queues parfois coûteuses du côté serveur. Cette fonctionnalité est disponible sur le serveur Apache via CGI.
Une autre possibilité pour réaliser le push est d'utiliser l'en-tête Mime multipart/x-mixed-replace, mis en place par le navigateur Netscape Navigator en 1995[1],[2]. Bien que la plupart des navigateurs récents soient à même d'exploiter cet en-tête, Microsoft n'envisage toujours pas de doter son navigateur de cette technique[3].
Le WHATWG travaille actuellement à la standardisation de cette technique : le Server Sent Event[4] qui, pour l'instant, n'est implémentée (partiellement) que par le seul le navigateur Opera[5],[6]. À la différence du modèle créé par Netscape, le server sent event est basé sur la création du nouveau type Mime text/event-stream, dont les données seront directement exploitables à travers l'arbre DOM.
Java pushlet
Le Java pushlet (mot-valise créé à partir de push et applet) est une technique développée pour les applications web en Java, bien qu'elle soit maintenant utilisé dans d'autres frameworks. Ici, le serveur exploite l'utilisation de connexions persistantes (voir aussi l'article sur HTTP 1.1). Comme pour les autres méthodes, le serveur ne clôt pas le dialogue avec son client, et berne ce dernier, le laissant en mode de chargement et lui envoyant régulièrement de petites instructions en JavaScript afin de rafraîchir la page. L'intérêt de cette méthode réside dans le fait que le client n'a pas besoin ni d'applet, ni de plugin pour garder sa connexion ouverte[7],[8]. Toutefois, cette méthode souffre d'un sérieux inconvénient qui se situe au niveau du timeout autorisé par le navigateur, qui implique un rafraîchissement manuel de la page.
Voir aussi
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Push technology » (voir la liste des auteurs)
- Client pull/Server push implementations
- CGI Programming on the World Wide Web O'Reilly book explaining how to use Netscape server-push
- Server-Push Documents (HTML & XHTML: The Definitive Guide) O'Reilly book explaining server-push
- Spécifications du HTML5
- (en) Event Streaming to Web Browsers, 2006-09-01. Consulté le 2007-03-23
- (en) Opera takes the lead with AJAX support among browsers: More efficient streaming, 2007-09-01. Consulté le 2007-03-23
- Pushlets introduction
- JavaWorld article about pushlets
Liens externes
Catégories :- Technique d'Internet
- Conception de sites web
- Web 2.0
- AJAX
Wikimedia Foundation. 2010.