Comment mesurer l’impact du protocole HTTP 2 et du langage PHP 7 sur un site internet ?

Dans le cadre d’un site internet de nombreux facteurs entrent en compte (les compétences du développeur, le design du site, les besoins du projet, des recommandations de Google, …). C’est sur un point commun de ces différents facteurs que nous nous attarderons : la vitesse de chargement. Pour ce faire, les développeurs doivent constamment améliorer les technologies mises à leur disposition. Deux nouvelles technologies en particulier sont venues bouleverser les possibilités de performances de cette vitesse. Ces deux nouveautés sont le PHP 7 et l’HTTP 2. Il est dès lors normal de se demander comment mesurer l’apport de ce gain de vitesse sur votre site.

Dans cet article nous verrons ce que sont le PHP et l’http, ainsi que les nouveautés apportées par leurs nouvelles versions. Après cela, une partie expliquant la mesure des changements sera abordée. Finalement nous terminerons par une analyse pratique de comment mettre en place ces changements et l’apport concret.

Le PHP

Avant de parler de ce que sont ces nouveautés, il faut tout d’abord se demander ce qu’est le PHP.

Qu’est-ce que c’est ?

Derrière l’acronyme PHP se cache Hypertext Preprocessor ou en français un préprocesseur hypertexte. Si celui-ci ne reflète pas son acronyme c’est car il est dit récursif, c’est-à-dire que l’acronyme décrit la manière dont le langage marche, le langage a gardé comme nom son acronyme de base qui voulait dire à l’origine Personal Home Page (Page d’accueil personnelle).  Le langage est né le 8 juin 1995 alors qu’il était une librairie en langage C pour le site internet de Rasmus Lerdorf. Par la suite, le travail a été repris par deux étudiants : Andi Gutmans et Zeev Suraski (les fondateurs de la société ZEND qui sont toujours en charge du maintien et de l’amélioration du PHP à l’aide de nombreux contributeurs), les deux jeunes développeurs de l’époque ont travaillé dans le but de rendre plus performant le langage développé par Lerdorf.

Le PHP est un langage côté serveur, c’est-à-dire que le langage va interagir avec le serveur. L’internaute va générer des demandes au serveur et ce dernier enverra des pages PHP (contenant de l’HTML et du CSS) dans le but de renvoyer la page personnalisée. Pour pouvoir développer en PHP, vous devez utiliser la balise « < ?php ?> »  et le code sera à intégrer entre le mot « php » et le deuxième point d’interrogation. Nous ne rentrerons pas dans les détails de l’utilisation du PHP, ce n’est pas là l’objet de cet article. Ci-dessous vous pouvez trouver un exemple assez basique démontrant la manière d’utiliser le langage.

Capture

L’utilité du langage est très diverse. En effet, on peut utiliser le PHP pour de nombreuses applications telles que les systèmes de gestion de contenu – sous leur célèbre acronyme « CMS » (par exemple : WordPress, Joomla, Drupal) – ou encore pour la création de site e-commerce à l’aide d’outils tels que Prestashop ou Magento développé en PHP. Ces différents points ne sont pas les seules applications du PHP, le langage est tellement puissant qu’il permet de nombreuses choses, toutes les décrire ne serait que trop long.

Les nouveautés du PHP 7

Entre la version 5.6 du PHP (dernière version majeure qui était sortie avant celle-ci, datant de novembre 2015) et la version 7 beaucoup de choses ont changé, voici une liste des différents changements sur la nouvelle version de PHP :

  • Le PHP 7 double sa vitesse de chargement par rapport au PHP 5 : à l’aide d’un tout nouveau moteur interne au langage, le PHPNG !
  • Les développeurs de chez Zend ont supprimé de nombreuses extensions et fonctionnalités obsolètes depuis la version 5.
  • Deux nouvelles manières de remplir les arguments des fonctions PHP ont vu le jour :
    • Le « Scalar Type Declaration », cette déclaration permet de rentrer le type de données qui devra être entré par l’utilisateur directement dans l’argument (si celui-ci doit entrer un texte, l’argument sera de type « string », s’il doit entrer un nombre entier l’argument sera de type « int », etc.).
    • Le « Return Type Declaration », le type de l’argument ne sera pas indiqué avec ce dernier mais sera affiché après et la valeur renvoyée devra obligatoirement être du même type que celui entré.
  • Un tout nouvel opérateur de comparaison a vu le jour, le « <=> ». Cet opérateur permet de remplacer l’ensemble des opérateurs existants. Il marche de la manière suivante : vous comparez a et b, le langage vous renverra 1 si a est plus grand que b, 0 s’ils sont égaux et -1 si b est plus grand que a.
  • De nouveaux mots sont réservés et ne peuvent plus être utilisés comme nom de variable comme (int, string, true, false, null, …).

L’HTTP

Après avoir abordé le PHP voyons de la même manière ce que vaut l’HTTP.

Qu’est-ce que c’est ?

Ce protocole est né en 1990 par l’informaticien Tim Berners-Lee célèbre inventeur du World Wide Web. Vous avez tous déjà rencontré ce protocole sur internet lorsque vous entrez « http:// » dans votre barre de recherche pour trouver un site. Lorsque vous effectuez cela, vous envoyez une requête au serveur pour qu’il vous renvoie une page. Ce dernier vous enverra comme réponse la page que vous avez demandé.

Les nouveautés de l’HTTP 2

Voyons brièvement les nouveautés de la version 2 du protocole :

  • L’obligation de migrer votre site vers le protocole sécurisé HTTPS pour pouvoir passer en HTTP 2.
  • Un gain de rapidité considérable grâce à la nouvelle gestion des requêtes.
  • Le multiplexage, cette technique offre la possibilité d’introduire plusieurs requêtes en même temps et de permettre leur sortie immédiate sans attendre les sorties des requêtes précédentes (c’était le cas dans les anciennes versions du protocole).
  • Les données sont maintenant introduites directement dans le cache du navigateur en temps réel pour gagner en temps de chargement.

La mesure des changements

Deux facteurs sont principalement touchés par la migration vers le PHP 7 et l’HTTP 2 :

  • La vitesse de chargement ;
  • Le nombre de requêtes envoyées (grâce notamment aux apports du protocole HTTP 2).

Pour analyser ces résultats lors de la migration, je vous conseille 4 outils permettant d’analyser ces changements :

  • Google Page Speed Insights : le célèbre outil de Google vous offre la possibilité d’analyser votre site grâce à deux « user-agent », ce sont des petits robots qui parcourent votre site avec un comportement d’utilisateur. En ressortent deux notes : une pour la rapidité et l’expérience utilisateur de votre site en version bureau et une autre en version mobile. Il vous propose ensuite des corrections à effectuer sur votre site pour améliorer votre note.
  • Pingdom : ce deuxième outil vous permet de tester votre site sur des serveurs à travers le monde. Il vous renvoie de très bonnes statistiques comme le temps de chargement de votre page, le poids, le nombre de requêtes etc.
  • GTmetrix : un outil un peu similaire à pingdom mais offrant encore des mesures supplémentaires tels que le temps durant lequel votre site est complétement chargé sur le navigateur ou encore le moment où votre site commence à charger.
  • Dareboost : enfin, ce dernier outil est un outil payant (5 analyses gratuites offertes par mois) mais offrant des statistiques très poussées.

Un exemple pratique

Enfin, nous allons aborder une partie plus pratique. Il est maintenant temps de voir une analyse d’un site que j’ai pu réaliser lors de ma période de stage au sein de l’entreprise Bside. Le site en question porte sur l’œuvre du tournaisien Denis Meyers. Il a utilisé les anciens bâtiments de l’entreprise Solvay pour laisser libre court à son imagination et a utilisé toutes les surfaces disponibles pour créer de magnifiques œuvres.

Avant la réalisation des tests nous pouvons apercevoir les résultats suivant sur l’outil Pingdom :

pingdom_3-3

Le site en lui-même est déjà très performant avec un temps de chargement de 3,73 secondes et 402 requêtes envoyées. Une fois la migration effectuée voici les résultats obtenues :

pingdom_3-5

Comme on peut le voir, les performances qui étaient à 68 sur 100 sont passés à 86 sur 100, il s’agit donc d’un sacré gain de performance. La vitesse qui était déjà de très bonne qualité a encore augmenté de plus d’1 seconde 60. L’apport de l’HTTP a également diminué le nombre de requêtes envoyées qui passe de 402 à 327. Le poids de la page ne provient pas de l’apport des nouvelles versions mais bien de modification que j’ai apporté sur le site. À noter également le backend de Joomla qui a gagné en rapidité grâce au PHP 7.

Comme nous avons pu le voir avec ce cas pratique, l’apport du PHP 7 et de l’HTTP 2 n’est pas négligeable (diminution de 45% sur les temps de chargement et 20% sur le nombre de requêtes). Ces deux nouvelles technologies sont l’avenir des sites internet et migrer votre version de PHP et d’HTTP est sans aucun doute une chose primordiale pour rendre votre site beaucoup plus performant.

Sources :

  • http://www.journaldunet.com/web-tech/developpeur/1152109-php-7-la-future-version-majeure-de-php-au-crible/
  • http://www.webmarketing-com.com/2015/03/09/36071-3-choses-savoir-sur-http2

 

Article écrit par Miguël Delfosse

Je suis actuellement étudiant en E-business au Condorcet. Passionné de nouvelles technologies, en Webmarketing et en création de site web.