Depuis la création du World Wide Web (www ), le HTTP Le protocole a évolué au fil des ans pour fournir un contenu numérique sécurisé et rapide sur Internet.
La version la plus utilisée est HTTP 1.1 et bien qu'il regorge d'améliorations de fonctionnalités et d'optimisations de performances pour combler les lacunes des versions précédentes, il est en deçà de quelques autres fonctionnalités saillantes qui ont été traitées par le HTTP/2 .
Quelles sont les limites de HTTP/1.1 ?
Le HTTP/1.1 Le protocole présente les défauts suivants qui le rendent moins idéal, en particulier lors de l'exécution de serveurs Web à fort trafic :
- Retards de chargement des pages Web en raison de la longueur des en-têtes HTTP
- HTTP/1.1 ne peut envoyer qu'une seule requête pour chaque fichier par connexion TCP.
- Étant donné que HTTP/1.1 traite une requête pour chaque connexion TCP, les navigateurs sont obligés d'envoyer un déluge de connexions TCP parallèles pour traiter simultanément les requêtes. Cela entraîne une congestion TCP et, en fin de compte, un gaspillage de bande passante et une dégradation du réseau.
Les problèmes mentionnés ci-dessus entraînaient souvent une dégradation des performances et des frais généraux élevés dans l'utilisation de la bande passante. HTTP/2 est entré en scène pour résoudre ces problèmes et est maintenant l'avenir des protocoles HTTP.
Avantages de l'utilisation de HTTP/2
Il offre les avantages suivants :
- Compression d'en-tête qui minimise les demandes des clients et réduit ainsi la consommation de bande passante. L'effet résultant est des vitesses de chargement de page rapides.
- Multiplexage de plusieurs requêtes sur une seule connexion TCP. Le serveur et le client peuvent tous deux décomposer une requête HTTP en plusieurs trames et les regrouper à l'autre extrémité.
- Des performances Web plus rapides qui conduisent par conséquent à un meilleur classement SEO.
- Sécurité améliorée puisque la plupart des navigateurs traditionnels chargent HTTP/2 sur HTTPS.
- HTTP/2 est considéré comme plus adapté aux mobiles grâce à la fonctionnalité de compression d'en-tête.
Cela dit, nous allons activer HTTP/2 sur Apache sur Ubuntu 20.04 LTS et Ubuntu 18.04 LTS .
Prérequis :
Avant de commencer, assurez-vous d'avoir activé HTTPS sur le serveur Web Apache avant d'activer HTTP/2 . En effet, tous les navigateurs Web courants prennent en charge HTTP/2 sur HTTPS . J'ai un nom de domaine pointé vers une instance sur Ubuntu 20.04 qui exécute le serveur Apache sécurisé à l'aide du certificat Let's Encrypt.
De plus, il est recommandé d'avoir Apache 2.4.26 et versions ultérieures pour les serveurs de production ayant l'intention de passer à HTTP/2 .
Pour vérifier la version d'Apache vous êtes en cours d'exécution, exécutez la commande :
$ apache2 -v

Vérifier la version d'Apache dans Ubuntu
À partir de la sortie, vous pouvez voir que nous utilisons la dernière version, qui est Apache 2.4.41 au moment de rédiger cet article.
Activer HTTP/2 sur un hôte virtuel Apache
Pour commencer, confirmez d'abord que le serveur Web exécute HTTP/1.1 . Vous pouvez le faire sur un navigateur en ouvrant la section des outils de développement sur Google Chrome en utilisant Ctrl +SHIFT + I
combinaison. Cliquez sur le "Réseau ' et localisez l'onglet 'Protocole ' colonne.

Confirmer la version du protocole HTTP
Ensuite, activez le HTTP/2 modules sur Ubuntu en exécutant la commande suivante.
$ sudo a2enmod http2

Activer HTTP/2 sur Ubuntu
Ensuite, localisez et modifiez votre SSL fichier d'hôte virtuel, si vous avez activé HTTPS à l'aide de Let's Encrypt , un nouveau fichier est créé avec un le-ssl.conf suffixe.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Insérez la directive ci-dessous après le <VirtualHost *:443>
balise.
Protocols h2 http/1.1

Activer HTTP/2 sur Apache
Pour enregistrer les modifications, redémarrez le serveur Web Apache.
$ sudo systemctl restart apache2
Pour vérifier si HTTP/2 est activé, récupérez les en-têtes HTTP à l'aide de la commande curl suivante comme show.
$ curl -I --http2 -s https://domain.com/ | grep HTTP

Vérifier la prise en charge HTTP/2 dans Apache
Vous devriez obtenir le résultat affiché.
HTTP/2 200
Sur le navigateur, rechargez votre site. Revenez ensuite aux outils de développement et confirmez HTTP/2 désigné par le h2
étiquette sur le ‘Protocole ' colonne.

Confirmer la version du protocole HTTP/2
Lors de l'utilisation du module mod_php avec Apache
Si vous utilisez Apache à côté du mod_php module, vous devez passer à PHP-FPM . C'est parce que le mod_php le module utilise le préfork MPM module qui n'est pas supporté par HTTP/2 . Vous devez désinstaller le préfork MPM et passez au mpm_event module qui sera supporté par HTTP/2 .
Si vous utilisez le mod_php PHP 7.4 module, par exemple, désactivez-le comme indiqué :
$ sudo a2dismod php7.4

Désactiver le module mod_php
Par la suite, désactivez le préfork MPM module.
$ sudo a2dismod mpm_prefork

Désactiver Prefork MPM dans Apache
Après avoir désactivé les modules, activez ensuite le Event MPM , Fast_CGI , et setenvif modules comme indiqué.
$ sudo a2enmod mpm_event proxy_fcgi setenvif

Activer Event MPM dans Apache
Installer PHP-FPM sur Ubuntu
Ensuite, installez et démarrez PHP-FPM comme indiqué.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Activez ensuite PHP-FPM pour démarrer au démarrage.
$ sudo systemctl enable php7.4-fpm
Ensuite, activez PHP-FPM en tant que gestionnaire PHP d'Apache et redémarrez le serveur Web Apache pour que les modifications soient effectuées.
$ sudo a2enconf php7.4-fpm
Activer la prise en charge HTTP/2 dans Apache Ubuntu
Activez ensuite le module HTTP/2 comme précédemment.
$ sudo a2enmod http2
Redémarrez Apache pour synchroniser toutes les modifications.
$ sudo systemctl restart apache2
Enfin, vous pouvez tester si votre serveur utilise le HTTP/2 protocole en utilisant la commande curl comme indiqué.
$ curl -I --http2 -s https://domain.com/ | grep HTTP

Vérifier le protocole HTTP/2 dans Apache
Vous pouvez également choisir d'utiliser les outils de développement sur Google Chrome navigateur pour vérifier comme documenté précédemment. Nous avons à la fin de ce guide, Nous espérons que vous avez trouvé les informations précieuses et que vous pouvez confortablement activer HTTP/2 sur Apache en toute simplicité.
Partager c'est aimer…Partager sur FacebookPartager sur TwitterPartager sur LinkedinPartager sur Reddit