详解C/S、B/S的应用及区别

一、C/S模型介绍

C/S是Client/Server的缩写,客户/服务器模式,是建立在局域网的基础上的,所以本地必须将其客户端下载下来。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、SybaseSQLServer。

C/S模型

优点:

充分发挥客户端PC的处理能力,很多数据可以通过客户端的处理后再发给服务器,降低了服务器的负荷,提高了速度。但维护和升级比较复杂,维护和升级是针对成千上万的客户机的。

缺点:

必须安装专用的客户端软件,工作量大。如果一台客户机出现了问题,如:感染病毒、计算机故障等等原因,都需要进行重新安装或维护。系统软件需要升级的时候,每一台客户机都需要重新安装系统软件,维护和升级成本高。对客户机的操作系统有限制,对一些操作系统和新开发的操作系统不兼容。

然而目前产品更新换代十分的快,所以要针对不同的操作系统系统版本开发不同的客户机软件,对成本开销是相当大。

二、B/S模型介绍

B/S是Brower/Server的缩写,浏览器/服务器模式,是建立在广域网的基础上的,客户机上只要安装一个浏览器(Browser),是针对C/S架构缺点进行改进后提出的网络结构模式。 B/S结构属于C/S结构,是一种特殊的C/S,因为浏览器只是特殊的客户端。

B/S模型

优点:

1.维护和升级简单,我们只要对服务器端进行维护和升级即可,不需要对成千上万的客服端进行维护和升级,减少了人力资源成本。

2.随时随地都可以访问,只要有一台连接互联网和安装了浏览器的计算机就可以访问。减轻了客户端电脑载荷,客户端电脑只要运行少部分程序就能实现。

3.对客服端电脑要求不高。

缺点:

服务器端负荷较重,主要的功能都集中到了服务器端,因此对服务器要求高,但总体而言,还是大大降低了成本。

个性化特点低,无法实现具有个性化的功能要求。ps:随着html5的普及,这个缺点越来越弱化了。

客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。

无法实现分页显示,给数据库访问造成较大的压力。

三、总结

总体上而言,二者各有优缺点,我们在日常的生活中,可以根据自己的喜好来选择到底使用哪一种模型的软件。当涉及到软件大,初始化加载的资源文件较多时,采用C/S模型;当加载的资源不多时,对启动时间要求短,反应较快时,则采用B/S模型。

原文地址:https://www.cnblogs.com/ql123456/p/10505985.html

时间: 2024-11-13 06:58:45

详解C/S、B/S的应用及区别的相关文章

转载:python文件打开方式详解——a、a+、r+、w+区别

第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? <span style="background-color: rgb(255, 255, 255);">fd = open("1.txt"

Android中View自定义XML属性详解以及R.attr与R.styleable的区别

为View添加自定义XML属性 Android中的各种Widget都提供了很多XML属性,我们可以利用这些XML属性在layout文件中为Widget的属性赋值. 如下所示: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 我们可以通过TextView所提供

【转】python文件打开方式详解——a、a+、r+、w+区别

原文地址:http://blog.csdn.net/ztf312/article/details/47259805 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: fd = open("1.txt",'w+') fd.write('123') fd = open("

python文件打开方式详解——a、a+、r+、w+区别

出处: http://blog.csdn.net/ztf312/ 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? fd = open("1.txt",'w+') fd.write('123') fd = open(&

Bind和Eval的区别详解

原文:Bind和Eval的区别详解 1.简单描述Eval和Bind的区别 绑定表达式 <%# Eval("字段名") %> <%# Bind("字段名") %> 区别 1.eval是只读数据,bind是可更新的. 2.当对次表达式操作时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %> 2.若GridView中绑定列里面 设置 内容格式 DataFormateStri

nginx_http_push_module模块使用详解

关于 nginx_http_push_module模块致力成为一个成熟的http推送和comet服务,它能够处理好全部链接,并且仅通过http请求,可以完成广播消息到所有客户端,这让你写异步web应用程序时得心应手,并且在代码中完全不必理会延时请求.该模块完整的实现了Basic HTTP Push Relay Protocol 为什么选择此模块 当你要写一个实时更新的模块时,例如某些聊天室.多人在线flash游戏等.无论哪种方式,我们都要避免更新请求时刷新页面或者每隔几秒轮训服务器,这样的代码丑

Android中自定义View、ViewGroup理论基础详解

Android自身提供了许多widgets,但是有时候这些widgets并不能满足我们的需求,这时我们就需要自定义View,本文会详细说明自定义View的各种理论基础,只有理解了这些知识,我们才能更好地实现各种功能的控件. 我觉得自定义View中最重要的部分就是绘图和交互,自定义的绘图使得你的View与众不同,交互使用户可以与你的View进行交互,而绘图的前提是View的量算与布局,交互的基础是触摸事件,所以量算.布局.绘图.触摸事件这些是自定义View的核心. 除此之外,一个设计友好的自定义V

PHP isset()与empty()的使用区别详解(转)

通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言.庞大的函数库支持着PHP语言功能的实现.下面我们为大家介绍有关PHP函数isset()与empty()的相关用法. PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在则返回 FALSE 若变量存在且其值为NULL,也返回 FALSE 若变量存在且值不为NULL,则返回 TURE 同

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h