前一段时间已经结束了C/S的学习,開始了B/S的旅程,那么为什么我们要学习这两个,这两个有什么差别呢?这些差别你知道多少呢?

B/S结构。即Browser/Server(浏览器/server)结构。是随着Internet技术的兴起。对C/S结构的一种变化或者改进的结构。

在这样的结构下,用户界面全然通过WWW浏览器实现,一部分事务逻辑在前端实现。可是主要事务逻辑在server端实现,形成所谓3-tier结构。

B/S结构。主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器  
就实现了原来须要复杂专用软件才干实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部。这样的结构更成为当今应用软件的首选体系结构。

C/S结构,即Client/Server(客户机/server)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,减少了系统的通讯开销。能够充分利用两端硬件环境的优势。

早期的软件系统多以此作为首选设计标准。

BS/CS

C/S

B/S

硬件环境

局域网。专门server

广域网。不必专门硬件环境

安全要求

服务端。client

仅仅注重服务端安全

程序架构

安全以及訪问速度多重考虑

注重流程,对执行速度考虑少

软件重用

不可避免的多重性考虑

要求构件独立的功能,能较好重用

系统维护

因为总体考虑,升级难,可能做一个全新系统

构件组成。方便更换。系统维护开销最小

处理问题

处理用户面固定,同样的系统

面向不同用户群,分散地域,与操作系统关系最少

用户接口

建立在windows平台,表现方法有限。对程序猿要求高

建立在浏览器上,可跨平台。不仅应用在windows平台

信息流

典型的中央集权的机械式处理, 交互性相对低

信息流向可变化, B-B B-C B-G等信息流向的变化, 更像交易中心

B/S 模式的缺点

1.响应速度不及C/S,随着AJAX技术的发展。相比传统B/S结构软件提升一倍速度。

2.用户体验效果不是非常理想。B/S须要单独界面设计,厂商之间的界面也是千差万别,因为浏览器刷新机制,使用时有刷屏现象,好在AJAX技术解决这一难题,像用友。智赢等开发的B/S架构软件用户体验效果与C/S差点儿相同。

C/S 模式的缺点

1.仅仅适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这须要我们的系统具有扩展性。这样的方式远程訪问须要专门的技术,同一时候要对系统进行专门的设计来处理分布式的数据。

2.client须要安装专用的client软件。

首先涉及到安装的工作量。其次不论什么一台电脑出问题,如病毒、硬件损坏,都须要进行安装或维护。

特别是有非常多分部或专卖店的情况。不是工作量的问题,而是路程的问题。

还有。系统软件升级时。每一台客户机须要又一次安装。其维护和升级成本非常高。

两者都有优缺点。所以我们能够依据自己的须要来选择不同的模式。而不是就去淘汰还有一方。

B/S与C/S的差别的更多相关文章

  1. ROLAP和MOLAP的概念和差别

    ROLAP和MOLAP的概念和差别OLAP(on-Line Analysis Processing)是使分析人员.管理人员或执行人员能够从多角度对信息进行快速.一致.交互地存取,从而获得对数据的更深入 ...

  2. apt-get upgarde和dist-upgrade的差别

    apt-get upgarde和dist-upgrade的差别 apt-get upgarde和dist-upgrade的差别   Debian/Ubuntu Linux都使用apt,升级时都是:  ...

  3. python与ruby的差别

    1.引用文件差别 Ruby:同一目录下的文件,如/usr/local/ruby/foo.rb与/usr/local/ruby/bar.rb两个文件.如果直接在foo.rb中 require 'bar' ...

  4. 【转】responseText,responseBody,responseXML差别

    为了做ajax的代理,研究了下服务器端的xmlhttp和客户端ajax中的xmlhttp,做了个比较 由于我一直使用JavaScript作为Asp的教本语言,所以比较起来更清楚.服务器端的xmlhtt ...

  5. 我的ORM之十二 -- 支持的数据库及差别

    我的ORM索引 支持最好的是SqlServer2005,Sqlserver2008,SqlServer2012 ,后续将支持:MySql,Sqlite,Oracle. 1.分页差别 MsSql 200 ...

  6. save与persist差别

    唯一差别: 在没提交事务情况下 save会产生insert语句,然后因为没提交事务进行回滚. 而这种情况,persist是连insert语句都不会产生.

  7. VS 2008 生成操作中各个选项的差别

    近日,在编译C#项目时经常发现有些时候明明代码没错,但就是编译不过,只有选择重新编译或者清理再编译才会不出错,本着求学的态度,搜罗了下VS2008IDE中生成操作的种类以及差别,整理如下:   内容( ...

  8. Angular 1与 Angular 2之间的一些差别

    现在在用ng1.5.8做一个项目,ng的优点和特性我就不用多说了,ng1在陆续更新到1.5/1.6后就没再推出新版本了,ng2已经面世测试很久了,如同很多系统和框架一样,每个大的版本更新都会有新特性加 ...

  9. PC互联网和移动互联网的本质差别

    网一代,我们先称为PC互联网,这大约可以从2010年作为分界,然后就是基于手机,及可穿戴的移动互联网. 在PC时代,软件都很庞大复杂,甚至客端端和网页混合,比如常见的桌面软件,Office及Photo ...

  10. MyBatis mapper文件中的变量引用方式#{}与${}的差别

    MyBatis mapper文件中的变量引用方式#{}与${}的差别 #{},和 ${}传参的区别如下:使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$ ...

随机推荐

  1. webpack vuejs 和 vue-router 如何使用?

    读本文之前,建议对webpack和vuejs有初步的了解,通过webpack的官网和vuejs的中文官网了解即可 网站主要目录://某些文件不一定全部罗列出来,注意观察 vue-wepack -src ...

  2. fragment和fragmentactivity解析

    一.为什么要使用Fragment  1.当我们须要动态的多界面切换的时候,就须要将UI元素和Activity融合成一个模块.在2.3中我们一般通过各种Activity中进行跳转来实现多界面的跳转和单个 ...

  3. Towelroot v3.0版发布 将支持更多设备 Towelroot v3.0下载

    Towelroot虽然已经发布一段时间了,虽然所Towelroot可以一键ROOT很多设备,虽然它只有100多K.不过还是有一小部分的机型没办法ROOT成功的,也不知道什么原因.不过不用担心,Geoh ...

  4. C#软件license管理(简单软件注册机制)

    最近做了一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理.        ...

  5. 四种更新UI的方法

    笔记:   // 使用handler.post(Runnable)更新UI public void updateUI_Fun1() { new Thread() { public void run() ...

  6. 算法:四种冒泡排序(Bubble Sort)实现

    背景 大学关于排序的算法,好像就学会了冒泡排序,这个算是排序界的 hello,world 了,冒泡排序的定义如下: 重复的遍历数组. /// <summary> /// 重复的遍历数组. ...

  7. Deployment failure on Tomcat 7.x. Could not copy all resources to

    今天在网上部署项目的时候出现在了问题 tomcat一直部署不上 网上查了一下 原因记下来供大家查看 [plain] <span style="font-size:18px;" ...

  8. [翻译] MCProgressView 使用自定义图片做进度显示

    MCProgressView 使用自定义图片做进度显示 https://github.com/Baglan/MCProgressView Progress bar view with custom i ...

  9. 表单提交的3种方式,http post的contentType

    application/x-www-form-urlencoded:窗体数据被编码为名称/值对.这是标准的编码格式.这是默认的方式 multipart/form-data:窗体数据被编码为一条消息,页 ...

  10. C++ Explicit Constructors(显式构造函数)

    C++ 为类(Class)提供了许多默认函数.如果自己没有申明,编译器会为我们提供一个copy构造函数.一个copy assignment操作符和一个析构函数.此外,如果没有申明任何构造函数,编译器会 ...