·C/S——客户/服务器模式

特点:非对等相互作用——即客户与服务器出于不平等的地位

表现在:服务器用有客户所不具备的硬件和软件资源以及运算能力,服务器提供服务,客户请求服务。

A.客户端与服务器的数量关系:

             ·多个客户进程同时访问一个服务器进程(N~>1)

             ·一个客户进程可以同时访问多个服务器提供的服务(1~>N)

B.客户端与服务器的位置关系:

             ·a.客户端和服务器放在同一个计算机上面——应用于网络应用程序开发测试。

             ·b.客户端和服务器在同一个局域网上(通过LAN相连接)——局域网文件共享、局域网打印机

             ·c.客户端通过先连接LAN再经过路由器的转接进入WAN以此和服务器相连(其实就是通过广域网)——最常见的网络应用程序

C.客户端与服务器的角色关系:

               ·应用程序作为纯粹的客户运行。——例如web浏览器

               ·应用程序作为纯粹的服务器运行。——如具备基本功能的ftp服务器

               ·应用程序同时具备客户和服务器两种角色。

Ps:  1.通过判断服务器或者客户本地端是否保存状态信息来确定服务器状态的有无

  ·无状态的服务器例子:禁用cookie功能的web服务器

  ·有状态的服务器例子:网络游戏服务器

  2.服务器的区别(循环服务器和并发服务器)

  ·循环:通过单线程内设置循环控制实现对多个客户请求的逐一响应

  ·并发:通过使请求处理(多线程)和I/O部分重叠达到高性能

·B/S——浏览器/服务器模式

  ·简述:用户通过www浏览器实现,一部分事务逻辑在前端(浏览器)实现,主要事务逻辑在服务端实现。通过三层架构(表现层、事务逻辑层、数据处理层)部署实现。

  ·PS:B/S模型是特殊的C/S模型,特殊之处在于,客户端软件特质浏览器。使用HTTP协议通信。用通用浏览器实现原来需要复杂专用软件才能实现的客户功能,节约了开发成本。

·三层架构:A.表示层、B.逻辑层、C.数据层

  ·A.表示层:客户端表示层——由web浏览器组成,不存放任何应用程序。

  ·B.逻辑层:应用服务器层(事务逻辑层)——由一台或者多台服务器组成,具有良好的可扩展性。

  ·C.数据层:数据中心层(数据处理层)——有数据库系统组成,用于存放业务数据。


联系

·浏览器/服务器(B/S)模型是一种特殊的、具体化的客户/服务器模型(C/S)模型,其特殊之处是

B/S模型的客户端软件特指路浏览器,服务器一般是web服务器,使用HTTP协议通信。其工作过程是C/S模型的具体化、实例化。

·二者本质思想均是给予计算机网络执行中,不同主机之间的软硬件资源、运算能力和信息不均等,为实现资源信息共享,必然形成不对等的通信地位和交互方式。

·两种结构对应的软件系统均为分布式网络应用程序系统。

优缺点

C/S模型:
优点:

结构简单。
支持分布式、并发环境。有效提高资源的利用率和共享程度。
服务器集中管理资源,有利于权限控制和系统安全。
可扩展性较好。客户和服务器均可单独地升级
传统C/S相比较B/S的局限:
1.不易部署(客户端逐一安装、挑平台)
2.维护困难(客户端需注意更新)

B/S
优点:分布式、易扩展、共享性强
相比较传统的C/S的优势:
1.易部署(各平台自带通用浏览器)
2.容易维护(服务器端改变网页内容可实现所有用户同步更新)
3.页面动态刷新,响应速度明显降低。

C/S,B/S的应用和区别的更多相关文章

  1. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

  2. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  3. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  4. 探究@property申明对象属性时copy与strong的区别

    一.问题来源 一直没有搞清楚NSString.NSArray.NSDictionary--属性描述关键字copy和strong的区别,看别人的项目中属性定义有的用copy,有的用strong.自己在开 ...

  5. X86和X86_64和X64有什么区别?

    x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为&qu ...

  6. Java中Comparable与Comparator的区别

    相同 Comparable和Comparator都是用来实现对象的比较.排序 要想对象比较.排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都 ...

  7. MySQL中interactive_timeout和wait_timeout的区别

    在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: ERROR (HY000): Lost connection to MySQL server ...

  8. 设置line-height:1.5和line-height:150%或者line-height:150px的区别

    直接正题: 看一下line-height可能的值: 其实可以分为两类: (1)不带单位的(如line-height:1.5),这种是推荐使用的: (2)带单位的(如line-heigth:30px/1 ...

  9. C#中Length和Count的区别(个人观点)

    这篇文章将会很短...短到比你的JJ还短,当然开玩笑了.网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家 ...

  10. select、poll、epoll之间的区别总结

    select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...

随机推荐

  1. HACK字体安装

    参考:https://github.com/source-foundry/Hack Linux的 下载最新版本的Hack. 从存档中提取文件(.zip). 将字体文件复制到系统字体文件夹(通常/usr ...

  2. tensorflow初始化函数变更

    变量初始化函数改变 老版本:initialize_all_variables()(2017-03-02之后删除) 新版本:global_variables_initializer()

  3. java8 forEach Map List[转载]

    java8 forEach 在Map和List中的使用 原始的使用 Map<String, Integer> items = new HashMap<>(); items.pu ...

  4. ueditor 上传图片

    ueditor在配置图片,附件上传  首先,是以web项目为基础的,需要安装好eclipse以及tomcat 其次,需要下载ueditor(可去百度官网下载 http://ueditor.baidu. ...

  5. web前端面试题库

    web前端面试题及答案   1.常用那几种浏览器测试?有哪些内核(Layout Engine)? 答: (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera.    (Q2) ...

  6. 8个开发必备的PHP功能--转(柒捌玖零)

    做过PHP开发的程序员应该清楚,PHP中有很多内置的功能,掌握了它们,可以帮助你在做PHP开发时更加得心应手,本文将分享8个开发必备的PHP功能,个个都非常实用,希望各位PHP开发者能够掌握. 1.传 ...

  7. java.lang.NoClassDefFoundError: org/apache/solr/common/params/SolrParams

    启动tomcat服务,报错误java.lang.NoClassDefFoundError: org/apache/solr/common/params/SolrParams [2016-03-10 2 ...

  8. WebSocket获取httpSession空指针异常的解决办法

    小坑:使用requestListner解决不了这个问题! 如何获取HttpSession 在使用webSocket实现p2p或者一对多聊天功能的时候我们经常会有这样的需求:webSocket服务端需要 ...

  9. java常用设计模式十一:策略模式

    一.概述 定义:策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化.(概念不好理解,可以看第二节的合例子) 基本角色: 环境( ...

  10. PKG_CONFIG_PATH变量 与 ld.so.conf 文件

    一.编译和连接 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径.由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安 ...