SPDY : le protocole qui booste HTTP sur chrome

Par Stéphane Payrard (‎cognominal‎) de Paris.pm
Communication éclair
Cible : tous
Langue : Français
Tags : chrome http protocole spdy web


Google propose le nouveau protocole SPDY pour améliorer l'interactivité des apps webs. Le butineur chrome de Google utilise SPDY depuis quelques mois, ce qui explique en partie pourquoi les services google apparaissent plus rapides sur ce butineur.

Le problème : alors que la bande passante augmente régulièrement, les temps de latence ne varient pas. Ils diminuent l'interactivité des apps web au moment même où de plus en plus d'apps se déplacent vers le cloud. Il faut donc augmenter le parallélisme des requêtes HTTP malgré un nombre de connexions TCP limitées.

La solution : SPDY repose sur une couche additionnelle de frames en dessous de HTTP. Un système de multiplexage et de priorisation de frames permet de privilégier les requêtes HTTP à caractère interactif par rapport aux autres pour augmenter l'interactivité des apps web. De plus, l'utilisation d'une seule socket semi-pérenne entre deux endpoints évite la multiplication de connexions HTTP avec un débit lent au démarrage. De plus les en-têtes HTTP sont compressés. Finalement le serveur, connaissant la page servie au client, peut envoyer les ressources associées avant que le client ne les demande ou utiliser un en-tête HTTP spécifique pour indiquer au client les URL des ressources associées.

Impact : au niveau applicatif la seule nouveauté est la priorisation de stream (flux associé à une requête) qui sera exposée par la biblothèque web utilisée. Au niveau réseau, la couche transport n'est pas affectée ne nécessitant pas de mise à jour des routeurs.

NB : ne pas confondre SPDY avec les websockets, un autre protocole plus complexe, et qui a des failles de sécurité connues. Les websockets sont aussi proposées par Google et implémentées par plusieurs butineurs mais rarement actives par défaut.

Ressources :
http://www.chromium.org/spdy/spdy-whitepaper
http://mbelshe.github.com/SPDY-Specification/draft-mbelshe-spdy-00.xml
http://groups.google.com/group/spdy-dev
http://japhr.blogspot.com/ un blogger qui parle de ses expérimentations avec SPDY et node.js


Présentation suivie par: Serge Hoffmann (‎atcom‎), Thierry Douez (‎tdz‎),