中间件

中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。百度百科

中间件 官网介绍

用于组成应用程序管道来处理请求和响应的组件。管道内的每一个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行某些操作。

请求委托

请求委托处理每一个HTTP请求。通过使用IApplicationBuilder 类型的Run、Map 以及Use 扩展方法来配置,并在Startup类中传给Configure 方法。
每个单独的请求委托都可以被指定为一个内嵌匿名方法,或其定义在一个可重用的类中。这些可重用的类被称作“中间件”或“中间件组件”。

请求管道

请求委托被用来建立请求管道,每个位于请求管道内的中间件组件负责调用管道中的下一个组件,或适时短路调用链。

ASP.NET 请求管道由一系列请求委托所构成。每个委托在下一个委托之前和之后都可选择执行操作。

请求管道的短路

任何委托都能选择停止传递到下一个委托,转而自己处理该请求。这可以避免一些不必要的工作,如一个授权(authorization)中间件只有通过身份验证之后才能调用下一个委托,否则就会被短路,并返回“Not Authorized”。

默认中间件组件
public void Configure(IApplicationBuilder app,IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");//错误页
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();//静态文件
            app.UseCookiePolicy();
            
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
错误处理 UseExceptionHandler

非开发环境时,UseExceptionHandler 是第一个被加入到管道中的中间件,因此会捕获之后调用中出现的任何异常,然后跳转到设置的异常页(/Home/Error)。
异常处理委托需要在管道的早期被调用,才能够捕捉到发生在管道内更深层次出现的异常。

HSTS UseHsts

将HTTP严格传输安全协议(HSTS)标头发送到客户端。

HTTPS重定向 UseHttpsRedirection

将HTTP请求重定向到HTTPS。官网介绍

静态文件服务器 UseStaticFiles

静态文件中间件不提供授权检查,有它提供的任何文件(包括wwwroot)下的文件都是公开可被访问的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值