Initialement nommé HTTP/2.0, HTTP/2 est la version majeure du protocole réseau HTTP utilisé sur le World Wide Web (WWW). Il est issu du protocole “expérimental” SPDY développé par Google. On peut aisément dire que HTTP2 résout pas mal de soucis contrairement à son prédécesseur HTTP 1.1 qui est sorti en 1999.
L’avancée majeure est qu’avec ce protocole, les requêtes HTTP2 peuvent être envoyées en rafale durant la même connexion TCP !
Utilisation de PHP FPM
Dans notre exemple, nous partons sur un serveur utilisant PHP 7.3. Pour pouvoir utiliser HTTP2, il convient avant tout, d’installer et d’utiliser php7.3-fpm. La grande différence entre PHP et PHP-FPM est la manière dont le moteur d’exécution est géré. En effet, en mode FPM, nous avons un service PHP qui instancie automatiquement X moteurs d’exécutions et les gardes allumés de manière “non-stop”, gagnant ainsi du temps à chaque appel !
Installez php7.3-fpm ; rien de plus simple sous Debian :
$ apt-get install php7.3-fpm
Puis, activez les modules et les fichiers de configuration requis.
$ a2enmod proxy_fcgi
$ a2enmod setenvif
Si PHP est déjà présent dans votre installation Apache, vous devez d’abord désactiver le module standard Apache PHP.
$ a2dismod php7.3
Ensuite, activez le nouveau module PHP-FPM, et finalement désactivez le MPM par défaut Apache puis activez le nouveau Apache MPM.
$ a2enconf php7.3-fpm
$ a2dismod mpm_prefork
$ a2dismod mpm_worker
$ a2enmod mpm_event
Activez HTTP2 sur votre serveur
Pour activer un module, utilisez la commande a2enmod :
$ a2enmod http2
Ajoutez le protocole h2 dans le fichier de configuration d’Apache dans /etc/apache2/apache2.conf :
Protocols h2 http/1.1
Enfin, redémarrez le service Apache2
$ service apache2 restart
Comment tester si HTTP2 est activé sur votre serveur ?
Pour tester si HTTP2 est activé sur votre serveur ou sur votre domaine, utilisez la commande CURL :
$ curl -I -k --http2 https://promatec.digital
Dans notre exemple, nous testons l’URL promatec.digital, la commande renvoie bien le protocole utilisé :
HTTP/2 200
Vous pouvez également vérifier en utilisant un service en ligne exemple : https://tools.keycdn.com/http2-test