Qu’est-ce que le middleware ?
Le middleware est un logiciel assemblé dans des pipelines applicatifs pour gérer les requêtes et les réponses. Chaque composant :
- Choisissez de transmettre la requête au composant suivant du pipeline.
- Le travail peut être effectué avant et après que le prochain composant du pipeline soit invoqué.
Les délégués de requête sont utilisés pour construire un pipeline de requêtes qui gère chaque requête HTTP.
Les délégués de requête sont configurés à l’aide des méthodes d’extension Run, Map et Use. Un délégué de requête séparé peut être spécifié dans une méthode anonyme en ligne (appelée middleware en ligne), ou il peut être défini dans une classe réutilisable. Ces classes réutilisables et méthodes d’anonymisation en ligne sont des composants middleware ou middleware. Chaque composant middleware dans le flux de requêtes est responsable d’appeler le composant suivant dans le pipeline et, si approprié, de court-circuiter le lien.
La migration des modules HTTP vers le middleware explique la différence entre ASP.NET Core et les pipelines de requêtes dans les versions précédentes (ASP.NET) et fournit plus d’exemples de middleware.
Utilisez IApplicationBuilder pour créer un pipeline middleware
Le processus de requête ASP.NET Core consiste en une série de délégués de requête, comme montré dans la figure suivante (le processus d’exécution suit la flèche noire) :
Chaque délégué peut effectuer des actions avant et après le délégué suivant. Le délégué peut également décider de ne pas transmettre la requête au délégué suivant, ce qui est appelé court-circuit dans le pipeline de requêtes. Un court-circuit est généralement souhaitable car il évite un travail inutile. Par exemple, un middleware de fichier statique peut retourner une requête pour un fichier statique et court-circuiter le reste du pipeline. Les délégués de gestion des exceptions doivent être invoqués tôt dans le pipeline, afin qu’ils puissent détecter les exceptions dans les pipelines ultérieurs.
La chose la plus simple est probablement de configurer un délégué ASP.NET l’application Core pour gérer toutes les requêtes. Ce scénario n’inclut pas le pipeline de requêtes réel. À la place, une méthode anonyme est appelée pour chaque requête HTTP.
La première application. Run delegate met fin au pipeline.
Il existe un code comme celui-ci :
Accessible via le navigateur, il est constaté qu’il est bien dans la première application. Run met fin au pipeline.
Vous pouvez déléguer plusieurs demandes via l’application. L’utilisation est liée entre elles. Le paramètre suivant représente le délégué suivant dans le pipeline. (Gardez à l’esprit que vous pouvez mettre fin au pipeline en n’appelant pas le paramètre suivant.) Vous pouvez généralement effectuer des actions avant et après la prochaine délégation, comme montré dans l’exemple suivant :
Utiliser un navigateur pour accéder à des résultats tels que :
On peut voir que l’ordre d’exécution du délégué de requête suit le diagramme de flux ci-dessus.
Note:
Après avoir envoyé la réponse au client, ne rappelez pas ensuite. Invoke。 Après le début de la réponse, les modifications apportées à l’HttpResponse lancent une exception. Par exemple, définir des en-têtes de réponse, des codes d’état, etc. déclenchera une exception. Rédigez le corps de la réponse après avoir appelé ensuite.
peut entraîner une violation de l’accord. Par exemple, écrire plus que la longueur du contenu décrite en longueur de contenu.
La mise en forme du contenu responsive peut être défaillante. Par exemple, écrire un pied de page HTML dans un fichier CSS.
HttpResponse.HasStarted est un indice utile pour indiquer si un en-tête de réponse a été envoyé et/ou si le corps a été écrit.
Middleware intégré
ASP.NET Core est livré avec les composants middleware suivants :
| Middleware | description | | Authentification | Le support de l’authentification est disponible | | CORS | Configurer le partage de ressources entre domaines | | Mise en cache de réponse | Le support de la réponse cache est disponible | | Compression de réponse | Fournir un support pour la compression de réponse | | Routage | Définir et contraindre le routage des requêtes | | Session | Assure la gestion des sessions utilisateur | | Fichiers statiques | Offre la prise en charge de la navigation statique de fichiers et de répertoires | | Middleware de réécriture d’URL | Utilisé pour réécrire des URL et demander la prise en charge des redirections |
|