HTTP / 3 est la prochaine version du col, actuellement en développement. Mais 60% du Web n'a toujours pas été mis à niveau vers HTTP / 2, qui est sorti depuis 2012 et bénéficie d'un large support. 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, de CSS et de JS, et même si 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, car il ne peut transférer qu'un seul flux de données par connexion. Cela signifie que chaque fichier est téléchargé de manière séquentielle, 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 ce problème en permettant le téléchargement de plusieurs requêtes en parallèle sur la même connexion TCP, ainsi qu'en ajoutant 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 via 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 pas un problème cependant, car vous devriez déjà le faire. Si vous ne l'avez pas encore fait, vous pouvez lire notre guide pour configurer 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 mise à jour && sudo apt-get mise à jour
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:
écouter 443 ssl http2 default_server; écoute (: :): 443 ssl http2 default_server;
Vous pouvez vérifier la syntaxe avec:
sudo nginx -t
Et redémarrez nginx avec:
sudo systemctl redémarrer nginx
Après cela, vous devriez être prêt.
Configuration Apache
Vous devrez activer le http2
module:
sudo a2enmod http2
Ensuite, dans votre définition d'hôte virtuel, ajoutez le Protocoles
directif:
Protocoles 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 redémarrer 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 faites un clic droit sur l'en-tête de la liste d'informations pour activer "Protocole":
Cela affichera le protocole pour chaque demande effectuée. h2
est ce que vous recherchez:
Ne vous inquiétez pas si certaines ressources externes sont toujours servies via HTTP / 1.1. Vous bénéficierez toujours des avantages de vitesse de HTTP / 2, car les demandes adressées aux 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 via HTTP / 1.1, ce qui n’est pas génial de leur part, mais vous ne pouvez pas y faire grand-chose. D'un autre côté, Google diffuse déjà ses polices via QUIC, si vous avez activé l'indicateur dans Chrome.