Dans un précédent article, j'ai montré une comparaison entre les performances de HTTP2 et HTTP1 sur une seule connexion (voir HTTP2 vs HTTP1 performance). Dans cet article, je vais montrer une comparaison entre HTTP2 et HTTP1 en introduisant une latence et en montrant comment la latence peut affecter les requêtes du protocole HTTP.
Quand un client fait une requête, il y a une latence, plus ou moins grande selon les conditions du réseau (trafic, distance du serveur…). La latence affecte beaucoup le protocole HTTP 1.1, parce que si tu dois envoyer plusieurs requêtes, tu dois d'abord envoyer la requête, attendre la réponse du serveur, faire la requête suivante, et ainsi de suite… Bien sûr, tu peux utiliser plus d'une connexion, mais cela demande davantage de ressources au serveur et ne se met pas bien à l'échelle.
Le protocole HTTP2 utilise une seule connexion pour faire toutes les requêtes : la latence affecte donc moins. Tu peux envoyer plusieurs requêtes sans attendre qu'elles soient traitées, et le processus est bien plus rapide.
Test de latence HTTP2
J'utilise le serveur de test HTTP2 Golang gratuit pour montrer comment la latence affecte HTTP/2 vs HTTP1.
Avec le protocole HTTP2, il te suffit d'envoyer toutes les requêtes au serveur et de traiter les réponses de façon asynchrone. Le processus est très rapide et prend moins d'une seconde.
Avec le protocole HTTP1, en revanche, les requêtes sont envoyées une par une et, avant d'envoyer une autre requête, il faut attendre une réponse du serveur : le processus est donc lent.

Tu peux télécharger un exemple de démo sgcWebSockets déjà compilé pour Windows depuis le lien ci-dessous. Teste simplement les différentes options et compare les performances entre les deux protocoles.
