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架构(略讲)的更多相关文章

  1. 学习一下 SpringCloud (一)-- 从单体架构到微服务架构、代码拆分(maven 聚合)

    一.架构演变 1.系统架构.集群.分布式系统 简单理解 (1)什么是系统架构? [什么是系统架构?] 系统架构 描述了 在应用程序内部,如何根据 业务.技术.灵活性.可扩展性.可维护性 等因素,将系统 ...

  2. 『与善仁』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架构 ...

  3. C/S架构和B/S架构的概念和区别

    C/S 架构 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端 ...

  4. 向架构师进军--->系统架构设计基础知识

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...

  5. 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

    最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...

  6. mvc项目架构分享系列之架构搭建初步

    mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...

  7. Asp.net mvc项目架构分享系列之架构概览

    Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...

  8. Asp.net mvc项目架构分享系列之架构搭建初步

    copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...

  9. TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架

    TOGAF架构能力框架之架构合同.成熟度模型和架构技能框架 5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施 ...

  10. 企业架构研究总结(40)——TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架

    5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施行.通过对合同的管理施行一个治理方法,如下几点将会得到保障: ...

随机推荐

  1. Python日期计算

    Python源代码如下: # -*- coding: UTF-8 -*- """ 简述:要求输入某年某月某日 提问:求判断输入日期是当年中的第几天? Python解题思路 ...

  2. 如何在文本编辑器中实现时间复杂度O(n/m)的搜索功能? BM算法

    //字符串匹配 public class StringCmp { //约定:A主串长 n ,B模式串 长m.要求:在A串中找到B串匹配的下标 //BM算法:从B串和A串尾部开始比较,希望一次将B串向后 ...

  3. Young and Beautiful 新红楼剪辑(by up)

    up剪辑的新红楼视频,配上Young and Beautiful 这首英文歌,很优美^_^

  4. 201871010112-梁丽珍《面向对象程序设计(java)》第一周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>    https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址> ...

  5. [ Python入门教程 ] Python文件基本操作_shutil模块

    shutil模块是对os模块中文件操作的补充,提供文件和目录的移动.复制.打包.压缩.解压等功能 shutil常用函数   shutil.copyfile(src, dst)   复制文件, 如果ds ...

  6. golang数据结构之散哈希表(Hash)

    hash.go package hash import ( "fmt" ) type Emp struct { ID int Name string Next *Emp } //第 ...

  7. 【TCP/IP网络编程】:02套接字类型与协议设置

    本篇文章主要介绍创建套接字函数相关的3个输入参数的含义,它们最终确定了套接字通信所采用的协议.同时,也简单对比了TCP和UDP传输方式的区别. 什么是协议?协议是对话中使用的通信规则,而在计算机领域则 ...

  8. springboot mail整合freemark实现动态生成模板

    目标:1:springboot 整合 mail2: mail 使用freemark 实现模板动态生成(就是通过字符串生成模板,不需要在工程中写入固定模板)3: springboot 整合aop 实现日 ...

  9. 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1

    <细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...

  10. 拎壶学python3-----(3)python之while循环用法

    一.下边我们看一个简单的while循环 那怎么计数呢就让输入三次三次后退出: 二. 关于计数这个问题我们一起看一下 (1)关于计数如下: 我们发现这个计数根本停不下来,怎么才能搞成我们想要的计数次数呢 ...