Mitä on Middleware?
Middleware on ohjelmisto, joka kootaan sovellusputkiin käsittelemään pyyntöjä ja vastauksia. Jokainen osa:
- Valitse, välitätkö pyynnön seuraavalle komponentille putkessa.
- Työ voidaan tehdä ennen ja jälkeen seuraavan putken komponentin käyttöönoton jälkeen.
Pyyntödelegaatteja käytetään rakentamaan pyyntöputki, joka käsittelee jokaisen HTTP-pyynnön.
Pyyntödelegaatit konfiguroidaan Run, Map, and Use -laajennusmenetelmillä. Erillinen pyyntödelegaatti voidaan määritellä anonyymillä inline-metodilla (kutsutaan inline-middleware) tai se voidaan määritellä uudelleenkäytettävässä luokassa. Nämä uudelleenkäytettävät luokat ja inline-anonymisointimenetelmät ovat middleware- tai middleware-komponentteja. Jokainen middleware-komponentti pyyntökulussa vastaa seuraavan putken komponentin kutsumisesta ja tarvittaessa linkin oikosulusta.
HTTP-moduulien siirtäminen middlewareen selittää eron ASP.NET Coren ja pyyntöputkien välillä aiemmissa versioissa (ASP.NET) ja tarjoaa lisää esimerkkejä middleware-ohjeista.
Käytä IApplicationBuilderia middleware-putken luomiseen
ASP.NET Core -pyyntöprosessi koostuu sarjasta pyyntödelegaatteja, kuten seuraavassa kuvassa on esitetty (suoritusprosessi seuraa mustaa nuolta pitkin):
Jokainen delegaatti voi suorittaa toimintoja ennen ja jälkeen seuraavan edustajan. Edustaja voi myös päättää olla välittämättä pyyntöä seuraavalle edustajalle, mikä kutsutaan oikosuluksi pyyntöputkessa. Oikosulku on yleensä toivottava, koska se välttää turhaa työtä. Esimerkiksi staattisen tiedoston middleware voi palauttaa pyynnön staattiselle tiedostolle ja oikosulkea loput putkesta. Poikkeusten käsittelyn delegaatit täytyy kutsua käyttöön alkuvaiheessa, jotta poikkeuksia voidaan havaita myöhemmissä putkistoissa.
Yksinkertaisin tapa on todennäköisesti perustaa delegaatti Core ASP.NET sovellukseen hoitamaan kaikki pyynnöt. Tämä skenaario ei sisällä varsinaista pyyntöputkea. Sen sijaan jokaiselle HTTP-pyynnölle kutsutaan anonyymi metodi.
Ensimmäinen sovellus. Run delegate lopettaa putken.
On olemassa tällaista koodia:
Selaimen kautta avautuessaan se todetaan, että se on todellakin ensimmäisessä sovelluksessa. Run päättää putken.
Voit delegoida useita pyyntöjä sovelluksella. Käyttö on yhteydessä toisiinsa. Seuraava parametri edustaa seuraavaa delegaattia putkessa. (Muista, että voit lopettaa putken olemalla kutsumatta seuraavaa parametria.) Voit yleensä suorittaa toimintoja ennen ja jälkeen seuraavan delegoinnin, kuten seuraavassa esimerkissä on esitetty:
Selaimen käyttäminen tulosten lukemiseen, kuten:
On nähtävissä, että pyynnön edustajan toimeenpanojärjestys noudattaa yllä olevaa kaaviota.
Muistiinpano:
Kun vastaus on lähetetty asiakkaalle, älä soita seuraavaksi. Invoke。 Kun vastaus alkaa, HttpResponse-muutokset aiheuttavat poikkeuksen. Esimerkiksi vastausotsikoiden, tilakoodien jne. asettaminen aiheuttaa poikkeuksen. Kirjoita vastausrunko seuraavan soiton jälkeen.
voi johtaa sopimuksen rikkomiseen. Esimerkiksi kirjoittamalla enemmän kuin sisältöpituus, joka on kuvattu sisällönpituudessa.
Responsiivinen sisällön muotoilu voi olla rikki. Esimerkiksi kirjoita HTML-alakoodi CSS-tiedostoon.
HttpResponse.HasStarted on hyödyllinen vihje kertomaan, onko vastausotsikko lähetetty ja/tai teksti kirjoitettu.
Sisäänrakennettu middleware
ASP.NET Core sisältää seuraavat middleware-komponentit:
| Middleware | kuvaus | | Todennus | Todennustuki on saatavilla | | CORS | Konfiguroi eri domainien resurssien jakaminen | | Vastevälimuisti | Välimuistivastetuki on saatavilla | | Vastepakkaus | Tarjoa tukea vastepakkaukselle | | Reititys | Määrittele ja rajoita pyyntöreititys | | Istunto | Tarjoaa käyttäjäistuntojen hallinnan | | Staattiset tiedostot | Tarjoaa tukea staattiseen tiedostojen ja hakemiston selaamiseen | | URL-rewriting Middleware | Käytetään URL-osoitteiden uudelleenkirjoittamiseen ja uudelleenohjaustuen pyytämiseen |
|