Ce que vous devez savoir au sujet SPDY

Lentement mais sûrement, SPDY est de plus en plus largement utilisé. Le protocole Google qui propose une modification de l’HTTP, est conçu pour aider à réduire la latence et de renforcer la sécurité. Même si vous n’avez pas à gérer un serveur Web par vous-même, vous devez avoir connaissance de ce qu’est SPDY, et ce qu’il va offrir pour vous, mais pour le Web dans son ensemble.

Comme je l’avais mentionné dans un précédent article, SPDY, prononcé « Speedy », en développement depuis quelques années et qui s’avère être un protocole réseau expérimental, va désormais sûrement accélérer son déploiement.

Tout d’abord, Google a lancé un module SPDY pour Apache, ce qui rendra beaucoup plus facile pour les organisations de déployer SPDY. Nginx a également mis en œuvre ce module. Cela couvre une grosse partie du marché des serveurs déjà !
Deuxièmement, SPDY a été activé par défaut depuis Firefox 13, et Chrome prend déjà en charge SPDY depuis quelques versions.

Vous n’avez plus aucune excuse pour ne pas commencer à faire tourner SPDY sur vos serveurs.

Qu’est-ce que SPDY, et ce qu’il offre

SPDY est une bi-couche compatible avec le protocole HTTP. Autrement dit, SPDY est comme HTTP, mais avec des fonctionnalités supplémentaires conçues pour le Web d’aujourd’hui. La couche « supérieure » fournit une requête HTTP et une sémantique de réponse, tandis que la couche « basse » gère l’encodage et l’envoi des données.

La couche inférieure de SPDY fournit un certain nombre d’avantages par rapport au HTTP standard. Notamment, elle permet d’envoyer moins de paquets, utilise moins de connexions TCP, et s’avère donc plus efficace !

Une session unique de SPDY permet des requêtes simultanées HTTP afin de fonctionner sur une seule session TCP/IP. Comme Patrick McManus écrit dans SPDY : What I Like About You, c’est extra pour les environnements à latence élevée, « because a resource never needs to be queued on either the client or the server for any reason other than network congestion limits ».

SPDY va donc permettre aux serveurs d’envoyer tous les différents éléments d’une page Web demandée en une seule fois, multiplexant le transfert de plusieurs fichiers, en éliminant ainsi de multiples requêtes effectuées lors d’une connexion HTTP standard.
Il permet également au serveur de faire des hypothèses sur des éléments supplémentaires qu’un navigateur aurait besoin pour finaliser le rendu d’une page Web, et ce sans avoir reçu une demande explicite à partir du navigateur. À noter que ces éléments supplémentaires sont également délivrés en même temps…
Enfin, SPDY permet au serveur et au navigateur de compresser les entêtes HTTP, venant ainsi réduire la quantité de données qui doit être communiquée entre les deux, surtout lorsque l’on sait qu’actuellement on peut relever beaucoup de redondance et gaspillage de bande passante lors du passage des entêtes HTTP.
Il y a actuellement beaucoup de redondance et de gaspillage de bande passante dans les en-têtes HTTP. SPDY compresse en-têtes HTTP, ce qui signifie que moins d’octets doivent être transmis entre le client et le serveur.

Autrement dit, vous allez retrouver tout ce qui permet d’améliorer sérieusement les performances du protocole. Selon le livre blanc de Google sur SPDY, vous pourriez voir une accélération sur les pages HTTP de 27% à 60% du temps de chargement de la page, et de 39% à 55% pour le protocole SSL.

Sécurité

Outre le fait d’offrir de meilleures performances, SPDY est aussi plus sûr. Malgré les nombreux efforts de l’Electronic Frontier Foundation (EFF) et d’autres, nous sommes loin d’avoir le protocole sécurisé HTTPS partout, ce qui signifie que la plupart du trafic Web est toujours envoyé non crypté…

Cela va être du passé avec SPDY. En effet, les implémentations actuelles de SPDY incluent le SSL, ce qui n’est pas universellement apprécié, pour preuve avec un billet de Varnish, mais semble être le meilleur moyen pour pousser sur le Web le chiffrement de la plupart du trafic.

Push et Hint

Enfin, SPDY ajoute deux nouveaux mécanismes qui contribueront également à accélérer le Web. Server Push et Server Hints.

En quelques lignes, Server Push va permettre d’envoyer des ressources à des clients sans y être invité. Par exemple, si vous demandez une URL d’une page Web, SPDY pourrait également décider de récupérer les images associées à la page, même si elles n’ont pas été encore demandées. Notez qu’il y a un inconvénient potentiel ici, puisque les serveurs pourraient se retrouver à envoyer du contenu redondant ou inutile.

Server Hints n’envoie pas le contenu, mais il va envoyer seulement l’URL de telle sorte que le client peut décider s’il en a besoin ou non. Si le contenu n’est pas mis en cache, un navigateur ou un autre client SPDY peut alors en faire la demande un peu plus vite qu’elle l’aurait été autrement.

Obtenir SPDY

Le seul, ou du moins le problème majeur, avec SPDY ? Vous devez activer SPDY sur les deux extrémités pour le faire fonctionner. Autrement dit, vous avez besoin d’un navigateur qui prend en charge SPDY, et des serveurs Web qui fournissent des contenus à l’aide SPDY. Si vous êtes l’un des millions utilisateurs de Chrome ou Firefox, vous avez déjà un soutien SPDY. On ne sait pas quand les autres navigateurs soutiendront SPDY, mais il peut mettre un certain temps avant de voir SPDY dans Internet Explorer ou Safari… De plus, voir apparaître SPDY au sein d’Internet Explorer peut s’avérer utopique, étant donné que Microsoft travaille actuellement sur sa propre variante d’SPDY, nommée HTTP Speed+Mobility.

Très peu de sites soutiennent SPDY pour le moment. Google, bien sûr, a été le précurseur du déploiement de SPDY. Twitter propose également son application Web à l’aide SPDY. Mais il va y avoir un certain temps avant que la plupart des utilisateurs de voir les effets à travers les plus SPDY la totalité ou même des sites qu’ils visitent. Mais les chances sont bonnes que vous allez commencer à voir un avantage important de SPDY avant que vous utilisez IPv6 à la maison.

Que pensez-vous de ce nouveau module ? Allez-vous le mettre en œuvre sur votre serveur ? Personnellement je vais me pencher sur ce dernier afin de vous offrir au mieux un affichage rapide du BlogNT ! De plus, lorsque l’on sait que pour Google le temps de chargement d’un site Web est primordial pour le référencement, étudiez toutes les manières d’accélérer le processus est fort intéressant…