中间件Middleware 使用及相关概念
中间件是装配在应用管道里处理请求和响应的软件,是使用Use,Map,Run扩展方法配置的请求委托,请求委托可以是类,或者匿名方法。每个中间件可调用下一个中间件,直到终端中间件(不调用下一个中间件的就是终端中间件)或者被短路。
如下图圈中的run,没有next调用,就是终端,最后的app.Run()就不会被调用,不过一般最后一个中间件是app.Run(),通常这么写罢了,还有个习俗就是app.Use扩展方法要有next,即要传递context(上下文),app.Map()按照约定用来创建管道分支,基于给定请求路径创建请求管道分支。
中间件的顺序如下:
可以看到有个Endpoint中间件,这个用来执行filter(筛选器),叫做筛选器管道
由此可知一个应用请求,先通过中间件,有Endpoint中间件,再通过filter筛选器的校验才最终到达方法内。以下是MVC Endpoint示意图:
博客备忘,一起成长。