C/S和B/S应用程序的本质区别

在Windows系统中,除驱动程序外,应用程序大概有如下几类:
  •     单机程序(只考虑主体功能,程序更新和注册等,也含网络通讯):WinForm,如:office、金山词霸、杀毒软件等;控制台程序;Windows服务等
  •     网络通讯服务器:可以是控制台、Windows服务、WinForm等多种形式;也可以是WinForm单机服务管理程序加上多个Windows服务的形式(如SqlServer等数据库服务端)
  •     网络通讯客户端:一般为WinForm形式,也有控制台的,或者网络游戏类的动画形式
  •     点对点网络通讯程序,其实就是一个程序既有服务端又有客户端功能,或者采用UDP协议通讯

    以上几类应用程序绝大多数都有可单独执行的exe,运行后产生一个或多个单独的进程,也有依托于rundll32.exe等进程启动的“可执行dll”程序(很多病毒木马和监控客户端属于此类)。

    显然,C/S程序中的服务端S和客户端C分别属于网络通讯服务器和网络通讯客户端类。而B/S呢?不是单机程序,只能属于网络通讯程序,但服务端和客户端都没有单独的exe,也就是说B/S并不是完整的程序,其客户端(browser)是IE等浏览器,服务端是IIS(Internet Information Services 网络信息服务平台,java采用tomcat等平台,本文只以IIS讲述,下同)。浏览器就是一个完整的网络通讯客户端了,一般都有单独的exe,IIS是一个WinForm的服务和配置管理程序加上多个Windows服务的组合(可能有操作系统的“亲密”支持),是一套完善的网络通讯服务器。

    我们用Asp.net等语言写的代码,编译后会生成一个或多个dll,以及aspx、js、css、图片等文件,其中脚本作为网络通讯客户端的一部分,由浏览器解释执行;dll在设置了虚拟目录后动态加载到IIS,作为网络通讯服务器的一部分,负责特定的业务处理。而浏览器和IIS间采用http头+html体(或其它变种)的协议进行通讯,当浏览器向IIS发一个字符串请求后,IIS根据aspx文件中对字符串的定义,提取控件值等信息,分发给特定的dll,由我们编写的dll进行业务处理,dll处理完后将新的控件值等信息以函数返回值之类的形式返回给IIS,IIS再根据aspx中的定义处理成协议字符串,回复给浏览器。

    所以B/S实质上是C/S的,只不过我们通常只做了服务端的业务处理部分,编译成dll交给IIS,客户端基本没做什么。单独的IIS也没有意义,必须有dll作为插件进行业务处理。

    B/S只能采用标准的http头+html体(或其它变种)的通讯协议,而C/S更加灵活,可以采用任何标准协议和自定义协议,甚至可以是基于UDP的应用层协议。当我们自定义的协议形成一个体系时,服务端可以做一个通讯框架,甚至是通用的exe平台,客户端界面由服务器取得,以后二次开发只需要做一个dll插入通用的服务器平台中即可。这样就把C/S程序做成了B/S的形式。Wap就是和Web一样的B/S类应用程序。

    写了这么多,发现C/S和B/S本质上是一样的,可以相互转化。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-464469/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-464469/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值