HTTP/2 est la deuxième version majeure du protocole HTTP publiée en 2015.
Environ 46,5 % des sites web prennent en charge HTTP/2.
Il possède de nombreuses fonctionnalités telles que
- Compression de l’en-tête HTTP
- Technologies “push
- Chargement d’éléments de page en parallèle sur une seule connexion TCP
- Protocole binaire
- Temps de latence réduit
Une démonstration réalisée par AKAMAI montre que HTTP/2 est environ deux fois plus rapide que HTTP/1.1.
Saviez-vous que LiteSpeed a été l’un des premiers serveurs web à supporter HTTP/2 ?
Si vous utilisez un CDN comme Cloudflare, Incapsula, MaxCDN, vous n’avez peut-être pas besoin d’activer HTTP/2 dans vos serveurs web car vous pouvez le faire depuis la périphérie du réseau CDN.
Cependant, si vous devez implémenter HTTP/2 dans vos serveurs web comme Apache, Nginx, IIS, lisez la suite pour savoir comment le faire.
Remarque : tous les principaux navigateurs (Chrome, Edge, Firefox, Safari, Opera) doivent utiliser TLS 1.2 ou une version plus récente pour la mise en œuvre de HTTP2.
Mais ne vous inquiétez pas si vous faites des expériences. Vous pouvez obtenir le certificat TLS GRATUITEMENT.
Implémenter HTTP/2 dans Apache HTTP
HTTP/2 peut être déployé dans Apache HTTP 2.4.17 ou une version ultérieure avec l’aide du module mod_http2. Donc si vous avez une version 2.2 ou inférieure, vous devez d’abord mettre à jour vers la version compatible.
Compilons Apache HTTP avec les modules mod_http2 et mod_ssl.
- Téléchargez la dernière version (je prendrai la 2.4.25 sur Linux)
- Extrayez le fichier téléchargé, si vous avez téléchargé le fichier .gz, alors
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- Vous verrez un nouveau dossier se créer. Allez à l’intérieur de celui-ci
- Construisez Apache à partir des sources avec la commande configure
Note: si vous essayez ceci sur un tout nouveau serveur, vous pouvez rencontrer une erreur d’installation des dépendances, et ce guide devrait vous aider.
./configure --enable-ssl --enable-so --enable-http2
- Assurez-vous qu’il n’y a pas d’erreur lors de l’exécution de la commande ci-dessus, puis exécutez la commande make suivante
make make install
Ceci conclut qu’Apache HTTP est installé avec le module HTTP/2 et qu’il est temps de procéder à la configuration nécessaire.
- Faites une sauvegarde du fichier httpd.conf (emplacement par défaut /etc/httpd/conf/httpd.conf)
- Ouvrez le fichier httpd.conf avec vi et assurez-vous que les éléments suivants existent ; si ce n’est pas le cas, ajoutez-les.
LoadModule http2_module modules/mod_http2.so
- Ensuite, vous devez ajouter la directive Protocols comme suit
Protocoles h2 h2c http/1.1
Si vous activez HTTP/2 pour un hôte virtuel individuel, vous devez ajouter Protocols sous le VIrtualHost correspondant.
Note : il y a trois paramètres dans la directive Protocols ci-dessus
- h2 – indique à Apache de supporter le protocole HTTP/2 sur SSL/TLS
- h2c – indique à Apache de supporter le protocole HTTP/2 sur TCP
- http/1.1 – si un client n’accepte pas HTTP/2, la requête est servie par HTTP/1.1
Redémarrez le serveur HTTP Apache pour recharger la configuration.
Maintenant, l’instance HTTP d’Apache est activée pour supporter le protocole HTTP/2.
Implémenter HTTP/2 dans Nginx
Nginx 1.9.5 ou une version plus récente prend en charge HTTP/2, vous devez donc d’abord vous assurer que vous avez installé la version compatible.
Pour activer HTTP/2 dans Nginx, il suffit d’ajouter le paramètre http2 dans la directive listen.
- Comme d’habitude, faites une sauvegarde du fichier nginx.conf (emplacement par défaut /etc/nginx/nginx.conf)
- Modifiez-le en utilisant vi et ajoutez http2 dans la directive listen
server { listen 443 http2 ssl chandan.io ; ....... }
Comme je l’ai mentionné ci-dessus, HTTP/2 n’est supporté que par HTTPS, vous devez donc l’ajouter sous le bloc serveur qui a une configuration SSL.
Si votre configuration SSL se trouve dans un fichier autre que nginx.conf, vous devez la mettre à jour à cet endroit.
Une fois cela fait, redémarrez Nginx pour que la configuration soit active.
Vérifiez si le site web supporte HTTP/2
Il y a plusieurs façons de vérifier si le site web supporte HTTP/2 ou non.
Manuellement – ouvrez IE/Chrome/Firefox et appuyez sur F12 >> allez dans l’onglet Réseau, et vous devriez voir que le protocole est HTTP/2.
En ligne – vous pouvez utiliser l’outil HTTP/2 Test.
C’est tout pour aujourd’hui. J’espère que ce qui précède vous aidera à activer le protocole HTTP/2 dans les serveurs web Apache et Nginx pour des pages web à chargement rapide.