zdppy_api 中间件请求原理详解

单个中间件的逻辑

整体执行流程:

  • 1、客户端发起请求
  • 2、中间件拦截请求,在请求开始之前执行业务逻辑
  • 3、API服务接收到中间件处理之后的请求,和数据库交互,请求数据
  • 4、数据库返回数据
  • 5、API处理数据库的数据,然后给客户端
  • 6、中间件拦截API服务的响应数据,在响应抵达客户端之前添加业务逻辑
  • 7、将API服务的数据经过中间件处理之后,响应给客户端

多个中间件的执行逻辑

整体执行流程:

  • 1、客户端发起请求
  • 2、中间件拦截请求,在请求开始之前执行业务逻辑,将业务传递给下一个中间件
  • 3、下一个中间件继续,直到所有的中间件都对请求进行了处理
  • 4、API服务接收到中间件处理之后的请求,和数据库交互,请求数据
  • 5、数据库返回数据
  • 6、API处理数据库的数据,然后给客户端
  • 7、中间件拦截API服务的响应数据,将业务传递给下一个中间件
  • 8、下一个中间件继续对响应做处理,直到所有的中间件都处理完毕,再响应给客户端
  • 9、将API服务的数据经过中间件处理之后,响应给客户端

多个中间件执行图解

执行流程:

  • 中间件1处理请求,传递给中间件2
  • 中间件2处理请求,传递给中间件3
  • 中间件3处理请求,传递给API服务
  • 中间件3处理响应,传递给中间件2
  • 中间件2处理响应,传递给中间件1
  • 中间件1处理响应,传递给客户端
相关推荐
白总Server8 小时前
微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
linux·运维·服务器·microsoft·中间件·架构·github
[email protected]19 小时前
ASP.NET Core 中实现 Markdown 渲染中间件
后端·中间件·asp.net·.netcore
LUCIAZZZ1 天前
ElasticSearch基本概念
java·大数据·elasticsearch·搜索引擎·中间件·操作系统
残花月伴1 天前
springCloud/Alibaba常用中间件之GateWay网关
spring cloud·中间件·gateway
CodeWithMe2 天前
【C/C++】RPC与线程间通信:高效设计的关键选择
c++·中间件
逸Y 仙X2 天前
适合java程序员的Kafka消息中间件实战
分布式·中间件·kafka·消息中间件
代码哈士奇2 天前
认识中间件-以及两个简单的示例
后端·中间件·typescript·nodejs·nest
言之。3 天前
【Django】中间件
中间件·django·sqlite
[email protected]3 天前
ASP.NET Core 中间件
后端·中间件·asp.net·.netcore
CodeWithMe3 天前
【中间件】brpc之工作窃取队列
中间件