Agence web » Actualités du digital » Avec HTTP / 3 à l'horizon, avez-vous mis à niveau vers HTTP / 2?

Avec HTTP / 3 à l'horizon, avez-vous mis à niveau vers HTTP / 2?

avec-http-3-a-l39horizon-avez-vous-mis-a-niveau-2193270
Shutterstock / Robert Avgustin

HTTP / 3 est la prochaine version du col, actuellement en développement. Mais 60% du Web n'a pas encore été mis à niveau vers HTTP / 2, qui est sorti depuis 2012 et bénéficie d'un large soutien. Voici comment l'activer dans Nginx et Apache.

Que fait HTTP / 2?

Si vous n'êtes pas sur HTTP / 2, vous utilisez probablement HTTP / 1.1, qui a été publié en 1999 alors que les pages Web n'étaient qu'un seul fichier HTML. De nos jours, les pages Web font plusieurs demandes d'images, CSS et JS, et bien que vous devriez essayer de réduire autant que possible les demandes supplémentaires, il n'est pas possible de ramener votre technologie à 1999.

HTTP / 1.1 a cependant un problème, en ce sens qu'il ne peut transférer qu'un seul flux de données par connexion. Cela signifie que chaque fichier est téléchargé séquentiellement, quelle que soit la vitesse Internet de l'utilisateur, ce qui peut être un ralentissement majeur, en particulier sur les sites volumineux contenant de nombreux fichiers.

HTTP / 2 corrige cela en permettant le téléchargement de plusieurs requêtes en parallèle sur la même connexion TCP, ainsi que l'ajout d'autres fonctionnalités, telles que la compression d'en-tête et la possibilité de pousser des fichiers directement vers les clients.

HTTP / 3 sortira bientôt et reconstruit la couche de transport pour qu'elle fonctionne sur UDP plutôt que TCP, sur un nouveau protocole appelé QUIC. Il en est à ses débuts, mais HTTP / 2 est déjà largement adopté, alimentant 40% d'Internet. Vous pouvez déjà l'activer si vous ne l'avez pas encore fait.

Activation de HTTP / 2 dans Nginx et Apache

La prise en charge de HTTP / 2 est intégrée à Nginx et Apache depuis des années maintenant, mais elle n'est pas activée par défaut, vous devez donc l'activer manuellement.

Une mise en garde de HTTP / 2 est que vous doit servir HTTP / 2 sur une connexion TLS sécurisée, ce qui signifie que vous devez avoir un certificat SSL installé et configuré, et forcer l'utilisation de HTTPS partout. Ce n'est cependant pas un problème, car vous devriez déjà le faire. Si vous ne l'avez pas encore fait, vous pouvez lire notre guide de configuration d'un certificat gratuit de LetsEncrypt.

Configuration Nginx

Pour Nginx, vérifiez que vous utilisez la version 1.9.5 ou supérieure en exécutant:

sudo nginx -v

Vous l'êtes probablement à moins que votre serveur ne soit horriblement obsolète; si c'est le cas, mettez à jour vos packages:

sudo apt-get update && sudo apt-get upgrade

Ensuite, ouvrez le fichier de configuration de votre site nginx dans votre éditeur de texte préféré. C'est probablement sous /etc/nginx/sites-available/, sous votre nom de domaine ou «par défaut». Modifiez les lignes qui écoutent sur le port 443 pour inclure le http2 directif:

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

Vous pouvez vérifier la syntaxe avec:

sudo nginx -t

Et redémarrez nginx avec:

sudo systemctl restart nginx

Après cela, vous devriez être prêt.

Configuration d'Apache

Vous devrez activer le http2 module:

sudo a2enmod http2

Ensuite, dans votre définition d'hôte virtuel, ajoutez le Protocols directif:


  Protocols h2 http/1.1

h2 est HTTP / 2 et HTTP / 1.1 est utilisé comme solution de rechange pour les navigateurs plus anciens.

Redémarrez Apache avec:

sudo systemctl restart apache2

Et les modifications doivent être enregistrées.

Vérification des modifications

Pour vérifier si votre site utilise désormais réellement le protocole HTTP / 2, ouvrez Chrome DevTools en cliquant avec le bouton droit n'importe où et en sélectionnant «Inspecter». Rendez-vous sur l'onglet "Réseau" et cliquez avec le bouton droit sur l'en-tête de la liste d'informations pour activer "Protocole":

1595259447_277_avec-http-3-a-l39horizon-avez-vous-mis-a-niveau-7241625

Cela affichera le protocole pour chaque demande effectuée. h2 est ce que vous recherchez:

1595259447_136_avec-http-3-a-l39horizon-avez-vous-mis-a-niveau-9789373

Ne vous inquiétez pas si certaines ressources externes sont toujours servies via HTTP / 1.1. Vous verrez toujours les avantages de la vitesse de HTTP / 2, car les demandes à d'autres serveurs sont effectuées via une connexion distincte. Dans la sortie ci-dessus de howtogeek.com, certains scripts pour le système de commentaires Disqus sont toujours servis sur HTTP / 1.1, ce qui n'est pas génial de leur part, mais vous ne pouvez pas faire grand-chose à ce sujet. D'un autre côté, Google diffuse déjà ses polices via QUIC, si vous avez activé l'indicateur dans Chrome.

★★★★★