Les sites web doivent être de plus en plus légers et de plus en plus rapides afin d’optimiser le SEO et le temps de chargement sur mobile. Réduction de la taille du DOM, du poids des images et… optimisation des requêtes HTTP grâce au protocole HTTP/2. Voyons comment l’activer.


Partager l’article Mettre en place le protocole HTTP/2 sur les réseaux sociaux


Prérequis

Les exemples fournis se basent sur un site web utilisant le serveur web et tournant sous PHP.

Le système d’exploitation est une Ubuntu 18.04.

Est-ce compliqué à mettre en place ?

Oui et non. Tout dépend comment vous allez tirer le meilleur de ce protocole. Si vous voulez juste l’activer pour avoir les performances de base, c’est assez simple, si vous voulez le push, alors il va falloir réflèchir un peu à ce qui doit être envoyé au client par cette voie (et attention, le push peut apporter plus d’inconvénients que d’avantages).

Prérequis

Il vous faut impérativement le SSL, autrement dit, sans HTTPS, pas de HTTP/2 possible, car il nécessite TLS qui est au sein de HTTPS.

Si vous n’avez pas le budget, passer par Let’s encrypt pour avoir votre site servi en HTTPS gratuitement. Au passage, si vous appréciez leur service, envisagez de leur faire un don

Enfin, je vais considérer dans cet article la mise en place de HTTP/2 pour un site en PHP 7.2 servi par Apache 2 sur une Ubuntu LTS 18.04. Si vous avez une autre configuration :

  • Il vous faut Apache version 2.4.24 au minimum, car c’est cette version d’apache qui supporte pour la première fois le protocole HTTP/2.

  • Vous devez utiliser le module PHP FPM, sinon, il sera impossible d’activer le protocole HTTP/2, même si vous le spécifiez en configuration, il restera sur le protocole HTTP/1.1.

Désinstallation des paquets non compatibles

sudo a2dismod php7.2
sudo a2dismod mpm_prefork

Installation des paquets compatibles

a2enmod http2
apt-get install php7.2-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
a2dismod php7.2
a2dismod mpm_prefork
a2enmod mpm_event
systemctl reload apache2

Ajout du protocole HTTP/2 sur un site

Il suffit d’ajouter cette ligne dans le fichier de configuration d’un Virtual Host, par exemple juste après la ligne d’ouverture de la balise <VirtualHost *:443> :

Protocols h2 http/1.1

Et voilà, en principe, HTTP/2 sera disponible après un systemctl reload apache2. Pour vérifier cela, utilisez les Dev Tools disponibles sur les navigateurs web Firefox ou Chrome.

Considérons avec Firefox l’exemple du chargement de la page Wikipedia sur le protocole HTTP2 :

Capture d’écran des évènements réseaux dans les outils Dev Tools de Firefox pour voir l’activation du protocole HTTP/2

Félicitation, comme le montre la colonne « Protocole », votre site est maintenant configuré pour servir du contenu en HTTP/2.0 !

Et pour nginx ?

Apparemment, dixit spout dans un post sur le forum Web Rank Info, c’est aussi simple que ça :

# changer ça
listen 443 ssl;

# par ça :
listen 443 ssl http2;

Photo de Diego Jimenez sur Unsplash