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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Worked example
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.
Practical exercise
Mesurez trois parcours concurrents dont un rapport lent, avec et sans annulation du client.
View a suggested solution
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.
Verification checklist
- Limiter aussi les flux.
- Observer les annulations.
- Ne pas confondre multiplexage et capacité illimitée.
Knowledge check
Related lesson: 09. HTTP/2 : multiplexage et contraintes partagées ↗Module validation
101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.
Start or resume the 101 questions →This records your own progress and does not certify mastery. Complete the exercise before moving on.
