B/S 交互模型和C/S 交互模型

B/S结构

B/S(Browser/Server)即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现。

B/S结构可以看作是瘦客户端,只是把显示的较少的逻辑交给了Web浏览器,事务逻辑数据处理在放在了Server端,这样就避免了庞大的胖客户端,减少了客户端的压力。B/S结构的系统无需特别安装,只有Web浏览器即可。

与C/S相比较,B/S不需要安装客户端,只需要浏览器即可。例如我们平时浏览的网站就是B/S结构的软件。

B/S架构可分为三层

第一层表现层,主要完成用户和后台的交互及最终查询结果的输出功能;

第二层逻辑层,主要是利用服务器完成客户端的应用逻辑功能;

第三层数据层,主要是接受客户端请求后独立进行各种运算。

img

目前,B/S架构形式主要有三种:客户端-服务器-数据库;客户端-web服务器-应用服务器-数据库;客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库(这种模式一般用在有大量的用户,高并发的应用中)

优点与缺点

  • B/S架构的优点包括:客户端无需安装,有Web浏览器即可;BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强;BS架构无需升级多个客户端,升级服务器即可,可以随时更新版本,而无需用户重新下载。

  • B/S架构的缺点,如,在跨浏览器上,BS架构不尽如人意;表现要达到CS程序的程度需要花费不少精力;在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题;客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的(在Ajax风行后此问题得到了一定程度的缓解)。

C/S结构

C/S(Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

C/S结构可以看做是胖客户端架构。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部分需要承受很大的压力,充分利用客户端的资源,对客户机的要求较高。与B/S结构相比较,C/S需要安装客户端。例如QQ属于C/S结构的软件。

C/S客户端优点

1、C/S功能强大,可以减轻服务器端压力,如果用户的需求特别复杂,用C/S;

2、C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑;

3、C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务;

4、C/S一般面向相对固定的用户群,对信息安全的控制能力很强;一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。

相同点与不同点

相同点:

  1. 都是基于请求-响应交互模型,即:浏览器(客户端) 向 服务器发送 一个 请求。服务器 向 浏览器(客户端)回送 一个 响应 。
  2. 必须先有请求 再有响应
  3. 请求和响应成对出现

不同点:

  1. 实现C/S结构需要用户在自己的操作系统安装各种客户端软件(百度网盘、腾讯QQ等);实现B/S结构,只需要用户在操作系统中安装浏览器即可。

    在一定程度上,B/S结构可以理解为一个特殊的C/S结构

  2. B/S具有分布性特点,可以随时随地进行查询、浏览等业务处理。

  3. B/S升级维护便捷,无需升级多个客户端,升级服务器即可,就可以实现所有用户的同步更新。

    JavaEE开发的应用软件属于B/S结构的软件,是以浏览器作为软件的呈现界面的。