B/S架构概述
B/S架构,全称Browser/Server(浏览器/服务器)架构,是一种网络应用程序架构模式。
Browser(浏览器)作为前端接口,负责与用户进行交互。大部分事务逻辑在Server(服务器)端实现,只有极少部分逻辑在前端的Web浏览器中完成。
该架构的系统无需特别安装客户端软件,仅需通过Web浏览器即可访问。
简单来说,我们前端主要负责数据渲染、请求等基本操作,而复杂的逻辑处理则交给后台服务器来完成。
B/S架构的层次结构
第一层:表现层,主要负责用户与后台的交互及最终查询结果的展示。
第二层:逻辑层,主要利用服务器完成客户端的应用逻辑功能。
第三层:数据层,接受客户端请求后独立进行各种数据处理和运算。
B/S架构的优势
1. 使用便捷:客户端无需安装额外软件,仅需Web浏览器即可访问。
2. 广域网应用:BS架构可直接部署在广域网上,通过权限控制实现多客户访问,交互性较强。
3. 维护便利:BS架构无需升级多个客户端,只需升级服务器端即可。可以随时更新版本,无需用户重新下载。
B/S架构的挑战与不足
1. 跨浏览器兼容性:BS架构在跨不同浏览器时可能会遇到一些问题。
2. 开发成本:要达到CS程序的表现力水平,BS程序需要付出更多的开发精力。
3. 安全与性能:在安全性和性能方面,BS架构可能需要更高的设计成本来优化。
4. 交互模式:客户端与服务器端的交互通常采用请求-响应模式,需要刷新页面。但随着Ajax技术的发展,这一问题已得到一定程度的缓解。
B/S架构的几种形式及其工作原理
第一种:客户端-服务器-数据库模式
此模式为常见应用模式:
- 客户端向服务器发起Http请求。
- 服务器中的web服务层处理Http请求。
- 调用业务逻辑上的方法,如果有必要会与数据库进行数据交换。
- 服务器将模版+数据渲染成最终的Html返回给客户端。
第二种:客户端-web服务器-应用服务器-数据库模式
此模式为解耦模式:
- 客户端向web服务器发起Http请求。
- web服务器处理Http请求并调用应用服务器的RESTFUL接口。
- 应用服务器执行对应方法,如有必要与数据库交互后返回json数据给web服务器。
第三种:负载均衡器(Nginx)辅助模式
此模式适用于大量用户、高并发应用场景:
- 客户端实际接触的是负载均衡器的地址。
- 客户向负载均衡器发起Http请求。
- Node服务器接收请求并解析,调用应用服务器的RESTFUL接口。
- 应用服务器执行对应方法,如有必要与数据库交互后返回json数据给Node服务器。
- Node层将模版+数据组合后通过反向代理服务器返回给客户端。
Nginx的优点详述
Nginx作为反向代理服务器,具有以下优点:
- 解决跨域问题:由于Nginx、Node、应用服务器、数据库都处于内网段中,反向代理能够避免跨域带来的问题。