Comment Google SPDY va accelerer le Web?

Logo Google ChromiumGoogle vient d’annoncer l’étude d’un protocole, en complément du vieillissant HTTP, pour accélérer le dialogue Client/Serveur Web. Ce protocole dénommé SPDY (à prononcer Speedy) nécessiterait une mise à jour de son serveur web et du navigateur web. Un prototype de cet architecture a été mis en place par l’équipe Chromium (l’équipe développant Google Chrome). Avec ce prototype et selon leurs tests en laboratoire, les résultats seraient interessants:

Nous avons téléchargés 25 du « Top 100 » des sites web via une simulation réseau maison avec une perte de paquets de données d’1%. Nous avons testés 10 fois chaque site et calculés le chargement moyen pour chaque site et pour tous les sites. Le résultat a montré une amélioration du temps de chargement de page par rapport au HTTP de 27% à 60% en TCP (sans SSL) et de 39% à 55% avec SSL.

Quel a pu être la recette magique de ces astucieux chercheurs/ingénieurs? Et pourquoi Google voudrait accélérer le Web?

Quelle recette pour accélérer le dialogue Client/Serveur?

La recette de Google SPDY s’axe sur deux points: l’amélioration voir le remplacement de certaines fonctionnalités du protocole HTTP, mais aussi via l’ajout de nouvelles fonctionnalités en accord avec le Web d’aujourd’hui et qui n’auraient pu être imaginées il y a prés de vingt ans.

Des améliorations par rapport au protocole HTTP

Le protocole SPDY permettra notamment:

  • de faire plusieurs requête HTTP simultanément via une seule et unique session TCP
  • de réduire la bande passante en compressant les en-tetes et en supprimant ceux inutiles (un en-tete « moderne » peut aller jusqu’à 2Ko)
  • en réduisant la complexité de HTTP et donc de limiter les cas d’utilisations. Ceci apporterait une facilité d’implémentation, mais aussi une plus grande rapidité de parsing.
  • de généraliser le protocole SSL afin de batir un web sur.

De nouvelles facons de dialoguer

L’équipe de développeurs de Chromium met en place de nouvelles fonctionnalités, on pourra retenir les trois suivantes:

  • Les requêtes seront priorisées afin d’éviter certains blocages et récupérer les « données squelette ».
  • Le serveur sera capable d’envoyer des données en mode push (c’est à dire envoyer directement des données au client) alors qu’actuellement les serveurs ne fonctionnent qu’en mode pull (le client va chercher les données quand il en a besoin). Ceci se ferait via un nouvel en-tete dénommé: x-Associated-Content
  • Le serveur pourra conseiller le navigateur de quelle ressource il aura besoin (Server hint) afin de lui prémacher le travail de parsing et accompagner le systeme de priorisation des requêtes. Ceci se ferait via un nouvel en-tete dénommé: x-Subressources

Pourquoi Google s’intéresse t’il à l’amélioration des connexions web ?

Google n’affiche pas les raisons de son investissement, excepté le fait qu’ils veulent rendre un web meilleur. Il est vrai que Google a souvent permis d’améliorer le Web. Personnelement, j’y vois deux raisons:

Google souhaite acquerir une avance technologique afin d’imposer le navigateur maison Google Chrome. En effet, avec le protocole SPDY installé par défaut, optimisé par et pour Chromium, nous aurions certainement là un navigateur trés véloce. On dit que ce navigateur Chrome est une porte supplémentaire que l’utilisateur ouvre au monde Google et à sa technologie d’analyse des habitudes sociales/de consommations.

Google dépense énormément de ressources pour analyser le Web. Un data center Google consomme autant que la ville anglaise de Newcastle et ses 274000 habitants. Rendre le web plus rapide demanderait moins de ressources aux serveurs de Google pour parser le web ou pour proposer les différentes applications web qu’il propose. Moins de ressources pour faire le même travail qu’actuellement permettrait soit de réduire les couts de fonctionnement, soit d’améliorer la qualité de service.

Le prototype mis en place par l’équipe Chromium semble être une petite bombe qui a tout pour aboutir, une bonne équipe et une bonne boite pour pousser le projet! Un projet qui fera certainement avancer le web.

Sources:

D’autres Blogs traitant de Speedy: