網站首頁 編程語言 正文
了解ASP.NET處理管道
為了理解ASP.NET Core中的請求處理管道概念,讓我們修改Startup類的Configure()方法,如下所示。
在這里,我們將三個中間件組件注冊到請求處理管道中。 如您所見,前兩個組件是使用Use() 擴展方法注冊的,因此它們有機會在請求處理管道中調用下一個中間件組件。
最后一個使用Run() 擴展方法注冊,因為它將成為我們的終止組件,即它將不會調用下一個組件。
了解ASP.NET Core請求處理管道執行順序
為了理解這一點,讓我們將上面的輸出與下圖進行比較,以更簡單的方式理解ASP.NET Core請求處理管道。
當傳入的HTTP請求到達時,它首先由第一個中間件組件(即Middleware1)接收,該組件在響應流中記錄“ Middleware1:傳入請求”。因此,首先,我們首先在瀏覽器上看到此消息。
第一個中間件
記錄了信息,然后它將調用next()方法,該方法將在請求處理管道中調用第二個中間件,即Middleware2。
第二個中間件
記錄了“中間件2:傳入請求”信息,因此我們在第一個日志之后看到了該日志信息。然后第二個中間件調用next(),它將在請求管道中調用第三個中間件Middleware3。
第三個中間件
處理請求,然后產生響應。因此,我們在瀏覽器中看到的第三個信息是“ Middleware3:傳入請求已處理并生成響應”。
該中間件組件是使用Run()擴展方法注冊的,因此它是終端組件。因此,從這一點開始,請求管道開始反向。這意味著從該中間件將控制權交還給第二個中間件,第二個中間件將信息記錄為“中間件2:外發響應”,然后將控制權交還給第一個中間件組件,第一個中間件組件記錄信息就像我們在瀏覽器中看到的一樣,是"Middleware1:外發響應"。
要記住的要點:
ASP.NET Core請求處理管道由一系列中間件組件組成,這些中間件組件將一個接一個地調用。
每個中間件組件都可以在使用next方法調用下一個組件之前和之后執行一些操作。 中間件組件還可以決定不調用下一個中間件組件,這稱為短路請求管道。
asp.net核心中的中間件組件可以訪問傳入請求和傳出響應。
您需要牢記的最重要的一點是,在Startup類的Configure方法中添加中間件組件的順序定義了將在請求時調用這些中間件組件的順序以及對它們的相反順序。 響應。 因此,順序對于定義應用程序的安全性,性能和功能至關重要。
原文鏈接:https://www.cnblogs.com/zh7791/p/14534549.html
- 上一篇:C語言的位段與枚舉詳解_C 語言
- 下一篇:python字符串操作詳析_python
相關推薦
- 2023-03-25 iOS13適配三指撤銷和文案限長實例詳解_IOS
- 2022-03-29 redis的list數據類型相關命令介紹及使用_Redis
- 2022-12-23 python如何獲取文件當前位置和定位某個位置_python
- 2022-12-03 FFmpeg?Principle分析Out?put?File?數據結構_Android
- 2022-07-17 一起詳細聊聊C#中的Visitor模式_C#教程
- 2022-05-20 如何搭建雙 M 結構的主從備份?
- 2023-11-26 String字符串類
- 2022-10-05 Android?Flutter實現原理淺析_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支