← HTTP — sécurité avancée, 40 leçons de cours

Module 9 / 40 · 90 min

09. HTTP/2 : multiplexage et contraintes partagées

Séparer concurrence logique et ressources de connexion.

Votre progression apparaîtra ici lorsque JavaScript est actif.

La progression et le meilleur score sont enregistrés uniquement dans ce navigateur. Aucun compte n’est nécessaire ; effacer les données du navigateur les supprime. Les durées de modules sont indicatives et incluent les exercices.

Comprendre le mécanisme

HTTP/2 transporte plusieurs flux sur une connexion avec un encodage binaire et une compression des champs. Ce multiplexage évite certaines contraintes du modèle HTTP/1.1, mais les flux partagent encore des ressources. Sur TCP, une perte de segment peut retarder la progression de plusieurs flux. L’application conserve ses propres files, limites et transactions : un nouveau transport ne corrige pas automatiquement les lenteurs métier.

Raisonner et vérifier

Définissez des limites de concurrence et observez annulations, tailles de champs et coût par requête. Une seule connexion peut porter de nombreux travaux ; limiter uniquement le nombre de connexions ne borne donc pas toute la charge. Mesurez les budgets au niveau des flux et du service, en tenant compte des intermédiaires qui terminent ou traduisent HTTP/2.

Streams concurrents

HTTP/2 peut multiplexer des streams sur une connexion. Plusieurs échanges peuvent partager le transport. Une connexion peut transporter plusieurs échanges simultanés. Distinguez identifiant de connexion et identifiant de stream dans l’observation afin d’attribuer latence, annulation et budgets à la bonne opération.

Erreur fréquente à comprendre

HTTP/2 impose une connexion TCP par ressource.

Plusieurs échanges peuvent partager le transport.

Compteurs adaptés

Une limite de connexions ne borne pas tous les streams. La concurrence existe aussi dans les streams. Dix connexions autorisées peuvent représenter bien plus de dix demandes actives. Limitez aussi streams et travail applicatif selon la capacité réelle, en particulier pour les opérations lentes ou coûteuses.

Erreur fréquente à comprendre

Compter les connexions suffit à compter les requêtes actives.

La concurrence existe aussi dans les streams.

Métier inchangé

HTTP/2 conserve les contrôles métier de l’application. Le transport ne décide pas des permissions. Multiplexer ne remplace ni transaction ni autorisation. Une réservation concurrente demande toujours une règle de capacité et un contrôle de propriétaire, même si ses octets arrivent sur un transport plus efficace.

Erreur fréquente à comprendre

Le multiplexage remplace les autorisations.

Le transport ne décide pas des permissions.

Perte TCP

Le TCP partagé peut affecter plusieurs streams lors d’une perte. Les échanges partagent le canal de transport. HTTP/2 partage TCP ; certaines pertes peuvent retarder plusieurs streams au niveau du transport. Ne promettez pas l’absence de toute attente parce que les échanges HTTP sont logiquement multiplexés.

Erreur fréquente à comprendre

Chaque stream possède nécessairement son TCP indépendant.

Les échanges partagent le canal de transport.

Ressources

Les limites de ressources restent nécessaires. Le protocole ne crée pas de capacité infinie. Bornez champs, mémoire, opérations actives et temps global. Un client peut créer du travail sans ouvrir beaucoup de connexions ; mesurez aussi le coût d’un stream interrompu après démarrage.

Erreur fréquente à comprendre

HTTP/2 rend la mémoire du serveur illimitée.

Le protocole ne crée pas de capacité infinie.

Sauts internes

Le trajet peut changer de version derrière le proxy. La version négociée ne décrit qu’un saut. Le proxy peut traduire vers une autre version. Vérifiez la configuration backend et les budgets de ses connexions ; une optimisation frontale peut déplacer la file d’attente plutôt que la supprimer.

Erreur fréquente à comprendre

HTTP/2 côté client prouve HTTP/2 jusqu’à PHP.

La version négociée ne décrit qu’un saut.

Représentation

Les en-têtes ont une représentation différente sur le fil. Le protocole utilise des frames et une gestion spécifique des champs. HTTP/2 utilise des trames et une représentation de champs différente de la syntaxe textuelle HTTP/1.1. Une trace pédagogique en lignes reste une vue logique et ne décrit pas tous les octets du réseau.

Erreur fréquente à comprendre

Une capture textuelle HTTP/1.1 décrit directement tout encodage HTTP/2.

Le protocole utilise des frames et une gestion spécifique des champs.

Sémantique conservée

Une requête doit conserver une sémantique de méthode correcte. Le changement de version ne redéfinit pas cette sûreté. GET reste une lecture sûre selon sa sémantique, et une mutation exige toujours un contrat adapté. Le changement de version ne justifie pas une annulation métier cachée dans un lien GET.

Erreur fréquente à comprendre

HTTP/2 autorise GET à effectuer toute mutation demandée.

Le changement de version ne redéfinit pas cette sûreté.

Annulations

Les annulations de streams peuvent consommer des ressources. Du travail peut précéder l’annulation. Une remise à zéro de stream peut arriver après consommation de CPU ou début de traitement. Appliquez des protections contre l’abus et vérifiez la propagation d’annulation sans supposer qu’elle annule tout effet durable.

Erreur fréquente à comprendre

Un stream annulé coûte nécessairement zéro au serveur.

Du travail peut précéder l’annulation.

Mesures

Les mesures doivent distinguer connexion et opération. Plusieurs étapes et attentes participent à la durée. Rapportez connexions, streams actifs, demandes applicatives et latences séparément. Une baisse du nombre de sockets ne prouve pas une réduction du nombre d’opérations ni de la charge de la base.

Erreur fréquente à comprendre

La latence TCP seule prouve le temps métier de chaque requête.

Plusieurs étapes et attentes participent à la durée.

Atelier guidé : lire, expliquer et vérifier le code

HTTP version: 2
Active TCP connections: 1
Active streams on this connection: 40
Policy shown: max_connections = 10

Une connexion TCP porte quarante streams alors que la politique ne montre qu’un plafond de connexions. Ce plafond ne suffit donc pas à borner le travail simultané. Ajoutez limites adaptées et mesurez le nombre d’opérations réellement actives dans l’application et ses dépendances.

Le compteur de connexions ne borne pas à lui seul tous les streams. Le multiplexage permet le partage de la connexion. Cette affirmation contredit le modèle montré. Aucune règle de streams n’est définie.

Travail pratique : Mesurez trois parcours concurrents dont un rapport lent, avec et sans annulation du client.

Critères de correction : Relevez latence par flux et travail réellement interrompu côté application. Vérifiez les limites de requêtes simultanées et le comportement du frontal sous charge de laboratoire. Distinguez attente réseau et saturation métier.

Exemple commenté

Connexion TCP
  flux 1 : catalogue
  flux 3 : réservation
  flux 5 : rapport
Ressources partagées : réseau, mémoire et capacité serveur.

La séparation des flux est logique. Elle ne réserve pas un cœur ou une transaction indépendante sans limite pour chaque demande.

Exercice de mise en pratique

Mesurez trois parcours concurrents dont un rapport lent, avec et sans annulation du client.

Voir une proposition de correction

Relevez latence par flux et travail réellement interrompu côté application. Vérifiez les limites de requêtes simultanées et le comportement du frontal sous charge de laboratoire. Distinguez attente réseau et saturation métier.

Points de vérification

  • Limiter aussi les flux.
  • Observer les annulations.
  • Ne pas confondre multiplexage et capacité illimitée.

Contrôle de connaissances

Cours associé : 09. HTTP/2 : multiplexage et contraintes partagées ↗
HTTP/2 garantit-il que toute attente métier disparaît ?

Documentation de référence ↗

Validation du module

101 questions, objectif pédagogique de 75 %. Durée conseillée de 150 minutes, sans limite imposée. Les questions et les choix sont mélangés ; le corrigé apparaît après validation. Le contrôle rapide de la leçon et l’examen final du cours restent des exercices distincts.

Commencer ou reprendre les 101 questions →