加载中...

在 Web 框架语境中,中间件(Middleware)指插入在「收到请求」与「业务处理器执行」之间的一系列可组合处理单元,用于实现日志、鉴权、跨域、压缩、限流、异常捕获等横切关注点,而无需侵入业务代码。
主流框架普遍采用洋葱模型:请求依次穿过各层中间件到达核心处理器,响应再按相反顺序穿出。每层既能在「进入」时预处理请求,也能在「返回」时加工响应。Koa 以 async/await 将这一模型表达得最为直观;Express 的 next() 回调、Django 的 middleware 类、ASP.NET Core 的管道、Rust Tower 的 Layer 都是同一思想的不同实现。
这一抽象可追溯到 Python WSGI 与 Ruby Rack:应用本身是可调用对象,包裹它的另一个可调用对象即是中间件。
中间件顺序敏感(如鉴权应先于业务、异常捕获应在最外层),排列不当是常见 bug 来源;过长的中间件链也会引入可观测性与性能开销。

登录 后参与讨论
暂无讨论,来发表第一条评论吧