Čo je middleware?
Middleware je softvér, ktorý sa zostavuje do aplikačných pipeline na spracovanie požiadaviek a odpovedí. Každý komponent:
- Zvoľte, či požiadavku odovzdáte ďalšiemu komponentu v pipeline.
- Práca môže byť vykonaná pred aj po spustení ďalšej zložky v pipeline.
Delegáti požiadaviek sa používajú na vytvorenie pipeline požiadaviek, ktorá spracováva každú HTTP požiadavku.
Delegáti požiadaviek sa konfigurujú pomocou metód rozšírenia Run, Map, and Use. Samostatný delegát požiadaviek môže byť špecifikovaný v inline anonymnej metóde (nazývanej inline middleware), alebo môže byť definovaný v opakovane použiteľnej triede. Tieto opakovane použiteľné triedy a metódy inline anonymizácie sú middleware alebo middleware komponenty. Každý middleware komponent v požiadavkovom toku je zodpovedný za volanie ďalšieho komponentu v pipeline a, ak je to vhodné, za skrat linky.
Migrácia HTTP modulov do middleware vysvetľuje rozdiel medzi ASP.NET Core a požiadavkovými pipeline v predchádzajúcich verziách (ASP.NET) a poskytuje viac príkladov middleware.
Použite IApplicationBuilder na vytvorenie middleware pipeline
Proces požiadaviek ASP.NET Core pozostáva zo série delegátov požiadaviek, ako je znázornené na nasledujúcom obrázku (proces vykonávania nasleduje čiernu šípku):
Každý delegát môže vykonať akcie pred a po ďalšom delegátovi. Delegát sa tiež môže rozhodnúť neodovzdať požiadavku ďalšiemu delegátovi, čo sa nazýva skrat v pipeline požiadaviek. Skrat je zvyčajne žiaduci, pretože zabraňuje zbytočnej práci. Napríklad statický middleware môže vrátiť požiadavku na statický súbor a skratovať zvyšok pipeline. Delegáti na spracovanie výnimiek musia byť volaní už na začiatku pipeline, aby mohli zachytiť výnimky v neskorších pipeline.
Najjednoduchšie je pravdepodobne nastaviť delegáta ASP.NET Core aplikácie, ktorý bude riešiť všetky požiadavky. Tento scenár nezahŕňa samotný pipeline požiadaviek. Namiesto toho sa pre každú HTTP požiadavku volá anonymná metóda.
Prvá aplikácia. Run delegate ukončí pipeline.
Existuje kód ako tento:
Po prístupe cez prehliadač sa zistí, že sa naozaj nachádza v prvej aplikácii. Run ukončí pipeline.
V aplikácii môžete delegovať viacero požiadaviek. Používanie je navzájom prepojené. Ďalší parameter predstavuje ďalšieho delegáta v pipeline. (Majte na pamäti, že pipeline môžete ukončiť tým, že nebudete volať ďalší parameter.) Zvyčajne môžete vykonať akcie pred a po ďalšej delegácii, ako je znázornené v nasledujúcom príklade:
Používanie prehliadača na prístup k výsledkom, ako napríklad:
Je vidieť, že poradie vykonávania delegáta požiadaviek nasleduje vyššie uvedený diagram.
Nota:
Po odoslaní odpovede klientovi nevolajte ďalej. Invoke。 Po začiatku odpovede zmeny v HttpResponse vyhodia výnimku. Napríklad nastavenie hlavičiek odpovedí, stavových kódov a podobne vyhodí výnimku. Napíšte odpovedné telo po ďalšom volaní.
môže viesť k porušeniu dohody. Napríklad písanie dlhšie, než je dĺžka obsahu opísaná v dĺžke obsahu.
Responzívne formátovanie obsahu môže byť nefunkčné. Napríklad napíšte HTML pätku do CSS súboru.
HttpResponse.HasStarted je užitočná nápoveda na indikáciu, či bola odoslaná hlavička odpovede a/alebo či bol napísaný samotný text.
Vstavaný middleware
ASP.NET Core obsahuje nasledujúce middleware komponenty:
| Middleware | popis | | Autentifikácia | Podpora autentifikácie je dostupná | | CORS | Konfigurácia zdieľania zdrojov naprieč doménami | | Vyrovnávanie odozvy | Podpora cache response je dostupná | | Kompresia odozvy | Poskytnutie podpory kompresie odozvy | | Trasovanie | Definovať a obmedziť smerovanie požiadaviek | | Zasadnutie | Poskytuje správu používateľských relácií | | Statické súbory | Poskytuje podporu pre prehliadanie statických súborov a adresárov | | Middleware na prepísanie URL | Používa sa na prepisovanie URL a žiadosti o podporu presmerovaní |
|