中间件Middleware 使用及相关概念

 

 中间件是装配在应用管道里处理请求和响应的软件,是使用Use,Map,Run扩展方法配置的请求委托,请求委托可以是类,或者匿名方法。每个中间件可调用下一个中间件,直到终端中间件(不调用下一个中间件的就是终端中间件)或者被短路。

如下图圈中的run,没有next调用,就是终端,最后的app.Run()就不会被调用,不过一般最后一个中间件是app.Run(),通常这么写罢了,还有个习俗就是app.Use扩展方法要有next,即要传递context(上下文),app.Map()按照约定用来创建管道分支,基于给定请求路径创建请求管道分支。

 

 中间件的顺序如下:

 

 可以看到有个Endpoint中间件,这个用来执行filter(筛选器),叫做筛选器管道

由此可知一个应用请求,先通过中间件,有Endpoint中间件,再通过filter筛选器的校验才最终到达方法内。以下是MVC Endpoint示意图:

 ASP.NET Core Middleware | Microsoft Learn

posted @ 2022-12-16 15:11  路鸣  阅读(208)  评论(0编辑  收藏  举报