Un middleware est un composant logiciel qui intercepte et traite les requêtes HTTP entre le client et l'application. Il permet d'ajouter des comportements transverses (authentification, logging, CORS, rate limiting) sans polluer la logique métier.
Pipeline de traitement
Les middlewares forment un pipeline : chaque requête les traverse dans l'ordre, et chacun peut modifier la requête, la réponse ou court-circuiter le traitement. En Symfony, ce rôle est rempli par les Event Listeners et le composant HttpKernel.
Cas d'usage courants
Authentification (vérifier les tokens), rate limiting (protéger contre les abus), CORS (contrôler les appels cross-origin), logging (tracer les requêtes) et compression (gzip/brotli). Les middlewares gardent les contrôleurs focalisés sur le métier.
Les middlewares incarnent le principe de séparation des responsabilités : la logique transverse (sécurité, logging, cache) est isolée du code métier, ce qui facilite la maintenance et les tests.