ASP.NET Core基礎(chǔ)之請求處理管道
了解ASP.NET處理管道
為了理解ASP.NET Core中的請求處理管道概念,讓我們修改Startup類的Configure()方法,如下所示。
在這里,我們將三個中間件組件注冊到請求處理管道中。 如您所見,前兩個組件是使用Use() 擴(kuò)展方法注冊的,因此它們有機(jī)會在請求處理管道中調(diào)用下一個中間件組件。
最后一個使用Run() 擴(kuò)展方法注冊,因為它將成為我們的終止組件,即它將不會調(diào)用下一個組件。
了解ASP.NET Core請求處理管道執(zhí)行順序
為了理解這一點(diǎn),讓我們將上面的輸出與下圖進(jìn)行比較,以更簡單的方式理解ASP.NET Core請求處理管道。
當(dāng)傳入的HTTP請求到達(dá)時,它首先由第一個中間件組件(即Middleware1)接收,該組件在響應(yīng)流中記錄“ Middleware1:傳入請求”。因此,首先,我們首先在瀏覽器上看到此消息。
第一個中間件
記錄了信息,然后它將調(diào)用next()方法,該方法將在請求處理管道中調(diào)用第二個中間件,即Middleware2。
第二個中間件
記錄了“中間件2:傳入請求”信息,因此我們在第一個日志之后看到了該日志信息。然后第二個中間件調(diào)用next(),它將在請求管道中調(diào)用第三個中間件Middleware3。
第三個中間件
處理請求,然后產(chǎn)生響應(yīng)。因此,我們在瀏覽器中看到的第三個信息是“ Middleware3:傳入請求已處理并生成響應(yīng)”。
該中間件組件是使用Run()擴(kuò)展方法注冊的,因此它是終端組件。因此,從這一點(diǎn)開始,請求管道開始反向。這意味著從該中間件將控制權(quán)交還給第二個中間件,第二個中間件將信息記錄為“中間件2:外發(fā)響應(yīng)”,然后將控制權(quán)交還給第一個中間件組件,第一個中間件組件記錄信息就像我們在瀏覽器中看到的一樣,是"Middleware1:外發(fā)響應(yīng)"。
要記住的要點(diǎn):
ASP.NET Core請求處理管道由一系列中間件組件組成,這些中間件組件將一個接一個地調(diào)用。
每個中間件組件都可以在使用next方法調(diào)用下一個組件之前和之后執(zhí)行一些操作。 中間件組件還可以決定不調(diào)用下一個中間件組件,這稱為短路請求管道。
asp.net核心中的中間件組件可以訪問傳入請求和傳出響應(yīng)。
您需要牢記的最重要的一點(diǎn)是,在Startup類的Configure方法中添加中間件組件的順序定義了將在請求時調(diào)用這些中間件組件的順序以及對它們的相反順序。 響應(yīng)。 因此,順序?qū)τ诙x應(yīng)用程序的安全性,性能和功能至關(guān)重要。
到此這篇關(guān)于ASP.NET Core基礎(chǔ)之請求處理管道的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET Core基礎(chǔ)之中間件
- ASP.NET Core應(yīng)用程序配置文件AppSetting.json
- ASP.NET?Core基礎(chǔ)之Startup類
- ASP.NET Core基礎(chǔ)之啟動設(shè)置
- ASP.NET?Core托管模型CreateDefaultBuilder()方法
- ASP.NET?Core基礎(chǔ)之Main方法講解
- ASP.NET?Core開發(fā)環(huán)境安裝配置
- ASP.NET?CORE基礎(chǔ)教程
- ASP.NET?Core中Startup類、Configure()方法及中間件詳解
- ASP.NET?Core的中間件與管道介紹
- ASP.NET?Core中HttpContext詳解與使用
相關(guān)文章
.Net行為型設(shè)計模式之觀察者模式(Observer)
這篇文章介紹了.Net行為型設(shè)計模式之觀察者模式(Observer),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05C#列出局域網(wǎng)中可用SQL Server服務(wù)器(續(xù))
上一篇文章展示了使用COM對象如何列出局域網(wǎng)中的 SQL Server服務(wù)器信息,后來還發(fā)現(xiàn)在.Net中有現(xiàn)成的類可用,而不需要使用不太熟悉的COM對象了,這樣豈不是更好?下面我把代碼展示給大家:2008-04-04ASP.NET 5已終結(jié),迎來ASP.NET Core 1.0和.NET Core 1.0
命名是非常困難的事情,微軟這次為了和ASP.NET4.6做區(qū)分,采用了全新的命名方式ASP.NET Core 1.0,它是一個全新的框架。2016-03-03Linux下使用Jenkins自動化構(gòu)建.NET?Core應(yīng)用
這篇文章介紹了Linux下使用Jenkins自動化構(gòu)建.NET?Core應(yīng)用的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04創(chuàng)建ASP.NET?Core?Web應(yīng)用程序并介紹項目模板
這篇文章介紹了創(chuàng)建ASP.NET?Core?Web應(yīng)用程序的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02Asp.Net 不同的OnClick事件區(qū)別小結(jié)(onserverclick,onclientclick)
下面以 HTML的按鈕( system.web.ui.htmlcontrols ) 和 ASP.NET服務(wù)端按鈕 ( system.web.ui.webcontrols ) 為例2012-05-05