B/S架构与C/S架构(略讲)
B/S架构基本概念
B/S是Browser/Server,即浏览器/服务器架构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。
B/S三层体系结构可以定义为:
l 客户机上的表示层
l 中间的web服务器层
l 后端的数据库服务器层
在B/S三层体系结构模式下,客户端不再需要安装特定的客户端应用程序,取而代之的是通用浏览器软件,所有的用户业务逻辑都被部署在新的中间层上。
由于三层体系结构通常是基于web的,所以中间层应用程序通常工作在web服务器上,被视为web服务器的一种功能扩展,因此中间层又称为web服务层。在web服务器上,通过大量的包含CGI/Servlet是服务端脚本程序页面,接受来自客户端浏览器的请求,以及完成对数据库的操作。
B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。
服务端编程是指在web服务器上编写程序并使之正常运行。在B/S模式下,当用户下载一个网页时,如果网页中包含服务端脚本程序,web服务器将首次执行网页中的脚本程序,然后把执行的结果网页发送到客户端浏览器显示。
B/S架构优缺点
优点:
(1) 客户端无需安装,有Web浏览器即可;
(2) BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强;
(3) BS架构无需升级多个客户端,升级服务器即可。
缺点:
(1) 在跨浏览器上,BS架构不尽如人意;
(2) 表现要达到CS程序的程度需要花费不少精力;
(3) 在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题;
(4) Browser和Server交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的,在AJAX流行后此问题得到了一定程度的缓解。
C/S架构基本概念
C/S是Client/Server,即客户端/服务器端架构,一种典型的两层架构。客户端包含一个或多个在用户的电脑上运行的程序。服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
因为客户端需要实现绝大多数的业务逻辑和界面展示。作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。
C/S架构优缺点
优点:
(1) 界面和操作可以很丰富;
(2) 安全性能可以很容易保证,实现多层认证也不难;
(3) 由于只有一层交互,因此响应速度较快。
缺点:
(1) 适用面窄,通常用于局域网中;
(2) 用户群固定,由于程序需要安装才可使用,因此不适合面向一些不可知的用户;
(3) 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
B/S架构与C/S架构(略讲)的更多相关文章
- 学习一下 SpringCloud (一)-- 从单体架构到微服务架构、代码拆分(maven 聚合)
一.架构演变 1.系统架构.集群.分布式系统 简单理解 (1)什么是系统架构? [什么是系统架构?] 系统架构 描述了 在应用程序内部,如何根据 业务.技术.灵活性.可扩展性.可维护性 等因素,将系统 ...
- 『与善仁』Appium基础 — 9、补充:C/S架构和B/S架构说明
目录 1.C/S架构和B/S架构概念 2.C/S结构与B/S架构的区别 3.C/S架构和B/S架构优点和缺点 (1)B/S模式的优点和缺点: (2)C/S模式的优点和缺点: 1.C/S架构和B/S架构 ...
- C/S架构和B/S架构的概念和区别
C/S 架构 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端 ...
- 向架构师进军--->系统架构设计基础知识
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- mvc项目架构分享系列之架构搭建初步
mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...
- Asp.net mvc项目架构分享系列之架构概览
Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...
- Asp.net mvc项目架构分享系列之架构搭建初步
copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...
- TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架
TOGAF架构能力框架之架构合同.成熟度模型和架构技能框架 5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施 ...
- 企业架构研究总结(40)——TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架
5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施行.通过对合同的管理施行一个治理方法,如下几点将会得到保障: ...
随机推荐
- Linux:DHCP服务器的搭建
了解DHCP协议工作原理 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)提供了动态配置IP地址的功能.在DHCP网络中,客户端不再需要自行输入网络 ...
- linux 安装程序的方式
linux 安装程序的方式 通用二进制格式(绿色软件,打开即用) 软件包管理器(rpm) 软件包管理器的前端工具(yum) 源代码编译
- LG1840 Color the Axis 线段树
菜的人就要写简单题 为了练习手速来写这样一道 珂朵莉树 线段树简单题 没啥可说的,注意修改操作中要判一下 val=0 #include<bits/stdc++.h> using names ...
- Python程序中的进程操作-开启多进程(multiprocess.process)
目录 一.multiprocess模块 二.multiprocess.process模块 三.process模块介绍 3.1 方法介绍 3.2 属性介绍 3.3 在windows中使用process模 ...
- golang数据结构之冒泡排序
//BubbleSort 冒泡排序 func BubbleSort(arr *[]int) { ; i >= ; i-- { ; j-- { if (*arr)[j] > (*arr)[i ...
- python--基础知识点梳理(二)面向对象
面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定在一起,进行封装,优点:快速高效 ,减少代码重写 面向对象三大特性:封装.继承.多态 # 封装的意义,隐藏实现细节 将属性和方法放到一起 ...
- vscode相关设置
一.如何设置vs每次点击文件打开新的窗口: 1.打开设置 2.搜索:"workbench.editor.enablePreview" 3.设置"workbench.edi ...
- IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素
从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...
- vscode打开文件在同一个tab的问题
当我们单击或者 cmd+鼠标左键单击打开文件时,有时候是在同一个窗口,有时候是新的窗口,这是啥样呢? 这是因为vscode有 "预览模式" , 当是预览模式时,打开的是当前窗口 ...
- gitlab与jenkins结合构建持续集成
Jenkins是java编写,需要安装JDK,这里采用 yum 安装,对版本有需求的,可以到 oracle 官网下载 JDK. yum install -y java-1.8.0-openjdk 一. ...