1. C/S结构
概念:客户机-服务器,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务,例如手机用的QQ、微信。
C/S只有两层结构:
第一层:表示层, 在客户机系统上结合了界面显示与业务逻辑;
第二层:数据层, 通过网络结合了数据库服务器。
优点:
- C/S架构的界面和操作可以很丰富。
- 安全性能可以很容易保证,实现多层认证也不难。
- 由于只有一层交互,因此响应速度较快。
缺点:
- 适用面窄,通常用于局域网中。
- 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
- 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
2. B/S结构
概念:浏览器-服务器,即Browser-Server(B/S)结构,随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。在这种架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构,例如网页版游戏,网页版QQ,网页版微信等等。
B/S有三层次结构(联想一下MVC开发模式):
第一层:表现层,主要完成用户和后台的交互及最终查询结果的输出功能。
第二层:逻辑层,主要是利用服务器完成客户端的应用逻辑功能。
第三层:数据层,主要是接受客户端请求后独立进行各种运算。
优点:
- 客户端无需安装,有Web浏览器即可。
- BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
- BS架构无需升级多个客户端,升级服务器即可。
缺点:
- 在跨浏览器上,BS架构不尽如人意。
- 表现要达到CS程序的程度需要花费不少精力。
- 在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
- 客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)