中间件的定义
中间件是一类“位于两端系统中间的工具层软件”,负责协调不同模块之间的通信、数据处理、流程控制、权限验证等工作,中间件不是处理最终业务逻辑的,但它承载了系统之间交互中必须要处理的通用逻辑。
web中间件的定义
作为 Web 应用中的中间转发层的那些组件,只要它们位于客户端和后端业务系统之间,负责请求转发、处理、协调、控制等任务,就可以称为中间件
广义web中间件
泛指任何位于操作系统与应用之间、提供通用服务的软件层
狭义web中间件
特指应用程序代码中在请求-响应流程中处理逻辑的函数/模块
web服务器、中间件、容器
web服务器、web中间件、web容器的区分是在狭义中间件下形成的。
web服务器
比喻理解:就是前台的服务员,接待客人(浏览器),把点单(HTTP请求)送到厨房(应用程序),再把做好的菜(响应)端回去
定义:处理HTTP请求和响应的程序
常用的web服务器:Apache、Tomcat、Nginx等
web中间件
比喻理解:就是传菜通道上的质检员,检查点单是否合规、顾客是否有会员卡(身份验证)、点了几道菜(参数校验)、统一包装盒(统一响应格式)
定义:web请求和响应之间的一层处理器
常用的web中间件:Node.js (Express)、Python (Flask)、Java (Spring Boot)等
web容器
比喻理解:就是厨房,它是让厨师(web应用逻辑)真正工作的地方,管理他们做菜的流程、管理他们做菜的流程、锅碗瓢盆等运行的环境。
定义:托管web应用的运行环境
常用的web容器:Apache(Servlet 容器)、Tomcat(Servlet 容器)、IIS(asp容器)等
广义中间件的主要作用
1.请求转发与调度
2.权限与认证
3.应用托管运行环境
4.协议适配与通信支持
5.服务治理与管理
6.日志与监控
7.缓存和加速
8.请求预处理/后处理
9.会话管理
中间件的工作流程
1.客户端发起HTTP请求
2.web服务器接收请求
3.web服务器将请求转发到web容器
4.web中间件参与
5.后端应用处理请求
6.web容器返回响应
7.web服务器将响应转发到客户端
几种中间件的应用场景
Apache
适用于:1.静态网站 2.需要模块化配置{.htaccess} 3.与PHP、Perl配合的站点
特点:1.模块化强、社区大 2.性能中规中矩,不适合高并发 3.可与Tomcat结合
Nginx
适用于:1.高并发web应用 2.反向代理、负载均衡 3.与 Node.js、PHP、Tomcat 等后端结合
特点:1.异步非阻塞,性能优异 2.配置简单,部署灵活 3.静态资源处理非常快 4.是现代web架构首选的前端服务器
Tomcat
适用于:1.运行Java web应用 2.需要部署WAR包的项目
特点:1.Servlet/JSP原生支持 2.不适合直接暴露在公网,常配合Nginx使用 3.静态资源处理能力较差
IIS
适用于:1.Windows平台部署的.NET/ASP网站 2.与 Microsoft 生态紧密集成(如 SQL Server、Active Directory)
特点:1.图形化配置界面 2.安全机制强(整合Windows身份验证) 3.只能在Windows上运行










