导读:每天都从应用中心下载很多软件安装尝试,在自己的电脑上也装了很多软件,但是,就出现了一个问题,好比QQ,为什么有了APP,还要有网站应用呢?由此,结合到自己的学习,就衍生出一个问题:C/S 开发就可以做出很好很好的东西,为什么还要有B/S开发呢?它们之间的区别是什么?

一、基本概况

1.1,概念

C/S (Client/Server)开发:又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。

附:C/S结构图

B/S 开发(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet
Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

附:B/S结构图

1.2,应用语言

如果说到应用什么语言去开发C/S 或者说是B/S 结构的的程序,那么作为目前的一个现状来说,很可能就认为:C++,C#,VB等更偏向C/S开发,而所用到的像JS,java,JQuery等,则会被认为更偏向于B/S开发。(某一时期,我是这么认为的)但是,这是不准确的!为什么,看后续的C/S和B/S的关系就明白了。

二、C/S 和 B/S 的对比

2.1,优点

2.1.1 C/S

安全性:C/S需要其特定的客户端,所以面向的对象比较确定,由此所进行的信息安全处于一种可控的范围。

效率:客户端和服务端直接相连,省却了中间环节,数据的传输相对较快。

个性化:C/S尤其特定的客户端,因此可以较大程度上满足客户的个性化要求,如界面、操作等。

稳定性:结构较稳定,较强的事务处理能力,可实现比较复杂的的业务逻辑。

2.1.2 B/S

范围:零安装:拥有一个浏览器,即可访问。因此,它所面向的范围更为的广阔。

扩展性:通常来说,通过增添网页即可扩展系统的功用。零维护:更新页面,即可以实现面向所有用户的更新。

共享:B/S 通过浏览器访问,共享性强。

2.2,缺点

2.2.1 C/S

由于需要在PC端安装特定的软件,所以,它对PC机有一定的要求:如,操作系统。而且,安装和部署复杂。

扩展性和维护成本高,当面对第二客户有不同需求时,得修改其界面等设计。当客户端达到一定的量时,同时访问服务器,造成服务端的响应变慢,效率变低。(但在数据量小的时候不存在)

2.2.2 B/S

由于B/S针对的对象范围广,所以,它的设计一般而言是一种公共审美,无法满足个性化的需求。

2.3,C/S和B/S的联系

2.3.1 联系:

1,C/S可以使用任何通信协议,而B/S这个特殊的C/S架构规定必须实现HTTP协议

2,浏览器是一个通用客户端,本质上开发浏览器,还是实现一个C/S系统

C/S开发和B/S开发从本质上来讲,并没有什么区别。所以在其应用语言的选择上,没有太明确太严格的要求,就比如说:VB、VC等即可用于C/S 开发,也可用于B/S开发。如果非要说不同的话,那么作为我个人来说,也许是在一些类库上有区别。由于B/S的范围广,对象多,开发过程中需要应用的东西就多很多,所以可能会需要像是Ajax,JQuery等使用,或者说引用更多的API类库等。

2.3.2 区别:

投入成本:B/S在一般情况下只需求一次投入,即开发时的费用。而C/S随着其使用范围、人数的增多,其维护成本、开发成本相应的增多。

资源利用:当数据量达到一定的程度之后,C/S开发中的服务器无法满足其需求,通常需要更换性能更为优越的服务器,而原有的旧服务器被废弃。而作为B/S开发,在需求量增大时,可以通过增添服务器的数量去圆滑的解决这个问题,其资源的利用程度相对较高。

三、总结

有些资料还是要去查一下的,然后才能明确。很多时候,不是自己不知道,只是不敢确定。但这种不确定性,却会在后续的学习中带来很大的困扰。

从C/S开发到B/S开发,随着受众的增多,或者说是庞大的系统结构,通常一个服务器端根本解决不了问题,那么,服务器端的增加会带来什么影响?当一个系统太过于庞大的时候,如果我们仍然使用一个解决方案,在后续维护的时候,会出现什么问题?

B/S 开发和 C/S开发的区别的更多相关文章

  1. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序

    直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...

  2. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  3. 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比

    曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...

  4. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  5. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  6. APP开发:一个APP开发需要哪些技术人员?

          亿合科技小编了解到:国民老公王思聪曾经在一个访谈中谈到过,如果他是一个普通人,他会选择移动互联网去创业,因为做个网站或者App开发门槛较低,做大做强的机会也比较多.小编觉得创业就是投资,重 ...

  7. C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)

    C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...

  8. 移动web开发和移动app开发的区分

    1.移动web开发 这部分跟web前端开发差别不大,使用的技术都是html+css+js.区别为手机浏览器是webkit的天下,pc端是IE的天 下.手机网页可以理解成pc网页的缩小版加一些触摸特性. ...

  9. 传统开发模型vs敏捷开发模型——过程模型的变革

    一.概念框架 在了解一个新概念的时候,最好的方法就是把它插入到原有的概念体系中.在不仅有助于对概念的记忆,更利于深刻地认识概念的本质.精髓.下图说明了"敏捷开发"在软件工程理论体系 ...

  10. 敏捷软件开发vs传统软件开发

    摘要 本文介绍了传统软件开发(着重介绍了传统软件开发中常用的瀑布模型)和敏捷软件开发,以及敏捷开发和传统开发的对比. 一.传统软件开发 比较常用的几种传统软件开发方法:瀑布式开发.迭代式开发.螺旋开发 ...

随机推荐

  1. Learn More Study Less `my notes`

    整体性学习概念: 广泛扎实的基础知识 抽象知识成生活中的模型,便于记忆 融会贯通,创造新的东西 整体性学习组成 获取:积极阅读:标记并结合其他的知识点 主要观点 怎么记住:联系和比喻其他的知识 拓展和 ...

  2. js 获取最后一个字符

    方法一: str.charAt(str.length - 1) 方法二: str.subStr(str.length-1,1) 方法三:    var str = "123456" ...

  3. 【学习笔记】C++ cout 输出小数点后指定位数

    在C中我们可以使用 printf("%.2lf",a);但在C++中是没有格式操作符的,该如何操作: C++使用setprecision()函数,同时必须包含头文件iomanip, ...

  4. 后TOS时代的码头数字化生产力

    之前看过一篇文章是,是INFORM的副总裁写的关于以TOS外挂模式提升码头生产效能的文章.文章对外挂模式的总结挺好的,我最近也一直从事这块的工作,以此文梳理一下前面的经验,记录一下自己的感想. TOS ...

  5. IOS之GCD记录

    在 GCD 中,加入了两个非常重要的概念: 任务 和 队列. 任务:即操作,你想要干什么,说白了就是一段代码,在 GCD 中就是一个 Block,所以添加任务十分方便.任务有两种执行方式: 同步执行 ...

  6. HDU 5410 CRB and His Birthday (01背包,完全背包,混合)

    题意:有n种商品,每种商品中有a个糖果,如果买这种商品就送多b个糖果,只有第一次买的时候才送.现在有m元,最多能买多少糖果? 思路:第一次买一种商品时有送糖果,对这一次进行一次01背包,也就是只能买一 ...

  7. python * urllib_urlopen( )

    python * urllib_urlopen( ) Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlop ...

  8. Tomcat和搜索引擎网络爬虫的攻防

    不知道广大程序员朋友们注意到一个现象么?使用百度是无法搜索到淘宝网的网页.为什么会造成这种现象?这就要从网络爬虫说起了. 咱们程序员假如自己搭设个人网站,在上面分享少量自己的技术文章,面临的一个重要问 ...

  9. 原创:PHP编译安装配置参数说明

    --prefix=/application/php-5.5.32 \          #指定PHP的安装路径 --with-mysql=/application/mysql/ \          ...

  10. expand - 把 tab 符转换为空格符

    总览 (SYNOPSIS) ../src/expand [OPTION]... [FILE]... 描述 (DESCRIPTION) 把 各文件 FILE 中的 tab 符 转换为 空格符, 然后 写 ...