B/S架构的全称为Browser/Server,即浏览器/服务器结构。
Browser指的是Web浏览器,其中前端实现的事务逻辑很少,但主要的事务逻辑都是在服务器端实现的。
B/S架构系统不需要特殊安装,只能使用Web浏览器。
其实是我们前端现在在做的事情,大部分逻辑都交给后台了。我们的大部分前端都在做较少的逻辑,比如数据渲染和请求。
B/S架构的分层:
与只有两层的C/S架构不同,B/S架构有三层,分别是:
第一个表示层主要完成用户与后台的交互以及最终查询结果的输出功能。
第二逻辑层:主要使用服务器完成客户端的应用逻辑功能。
第三数据层:主要是在收到客户端请求后,独立进行各种操作。
B/S架构的优势:
1.客户端不需要安装,只需要一个网络浏览器。
2.BS架构可以直接放置在WAN上,通过一定的权限控制达到多客户接入的目的,交互性强。
3.BS架构不需要升级多个客户端,但是服务器可以升级。您可以随时更新版本,而无需用户再次下载。
B/S架构的缺点:
1.在跨浏览器方面,基站的体系结构并不令人满意。
2.要达到CS程序的水平需要很大的精力。
3.BS架构最大的问题是在速度和安全性方面的巨大设计成本。
4.客户机-服务器交互是一种请求-响应模式,通常需要刷新页面,这不是客户喜欢看到的。(Ajax普及后,这个问题得到了一定程度的缓解。)
三、B/S架构的几种形式
第一种类型:客户机-服务器-数据库
软件开发
这应该是我们通常使用的模式:
1.客户端向服务器发起Http请求
2.服务器中的web服务层可以处理Http请求
3.服务器中的应用层调用业务逻辑,并调用业务逻辑上的方法
4.如果需要,服务器将与数据库交换数据,然后将模板数据呈现为最终的Html,并将其返回给客户端
第二种:客户端-网络服务器-应用服务器-数据库
软件开发
与第一种方法类似,它只是将web服务从应用程序服务中分离出来
1个客户端向web服务器发起Http请求
2 web服务可以处理Http请求,并调用应用服务器公开的RESTFUL接口
当调用应用服务器的RESTFUL接口时,会执行相应的暴露方法。如果需要与数据库交互,应用服务器将与数据库交互,并将json数据返回给web服务器
4.web服务器将模板数据呈现为html,并将其返回给客户端第三种方法:客户端-负载均衡器(nginx)-中间服务器(节点)-应用服务器-数据库
这种模式一般用于用户数量大、并发性高的应用。
1.公开的不是真实web服务器的地址,而是负载平衡器的地址
2.客户端向负载平衡器发起一个Http请求
3.负载平衡器可以将来自客户端的Http请求统一转发到节点服务器集群
4.收到Http请求后,Node服务器可以解析它并调用应用服务器公开的RESTFUL接口
5.当调用应用服务器的RESTFUL接口时,会执行相应的暴露方法。如果需要与数据库交互,应用服务器将与数据库交互,并将json数据返回给Node
6.节点层将模板数据渲染成html,并将其返回给反向代理服务器
7.反向代理服务器将相应的html返回给客户端
Nginx的优点是:
1.它可以承受大量高并发的请求,然后将这些请求平均转发给内部服务器分担压力。
2.反向代理可以解决跨域带来的问题,因为Nginx、Node、应用服务器、数据库都在内部网段。
3.Nginx非常擅长处理静态资源(img、css、js、video),所以经常被用作静态资源服务器,也就是我们通常所说的CDN
例如,在前一个用户访问index.html并通过Nginx-Node-application server-database链接后,Nginx会将index.html返回给用户,并将index.html缓存在Nginx上。
当下一个用户想要再次请求index.html时,他请求Nginx服务器。Nginx发现有index.html的缓存,所以他不需要请求Node层,直接将缓存的页面(如果还没有过期)返回给用户。
四.发展前景
1.C/S和B/S各有优势。C/S在图形表现和运行速度上肯定比B/S强,但缺点是需要运行特殊的客户端,更重要的是不能跨平台。在windows下用c语言编写的程序不能在linux下运行。
2.B/S模式,不需要专门的客户端,只需要一个浏览器,浏览器自带操作系统。方便是他的优势。
再者,B/S基于web语言,与操作系统无关,所以跨平台也是它的优势,而且随着未来web语言和浏览器的发展,B/S在处理性能和运行速度上会越来越快,缺点也会越来越少。尤其是HTML5的普及,在渲染图形、处理音频和文件方面变得非常强大。
但是C/S架构也发挥着不可替代的作用。