我这人学东西急躁,不喜欢按部就班从理论学起,特别喜欢实践,从实践中获得感性认识,然后再去理解理论,有时候到最后弄明白了,才知道原来书上已经有成套的理论- - 正好应了一句话,欲速则不达,不过实践先行也有它的好处,虽然碰钉子很多,但是印象特别深刻。BS和CS这两个名词我是到现在才弄明白。B是browser(浏览器),C是client(客户端),S是server(服务器端)。
本篇主要考虑一个问题:为什么大量互联网应用都从CS转向BS?要弄清这个问题,我们首先要弄明白CS和BS的本质区别。
传统的网络软件开发一般是CS,比如QQ、比如网络游戏。web开发,主要是网站开发,一般是BS的开发,因为客户端是浏览器,开发出来的程序不需要在客户端安装。
BS和CS开发的区别在于:
从程序实现的角度,CS开发的逻辑实现有一部分在客户端,而BS开发的逻辑实现基本上都在服务器端。
从信息传递的角度,CS上行和下行的数据基本上是对等的,传递的基本上都是与界面无关的信息或者逻辑信息;BS上行和下行的数据很不对等,上行的是与界面无关的信息,比如用URL和form提交的信息,这些信息量一般都在在http header中的,下行的信息除了header外,还有response body的数据,也就是我们常用的html文档。
严格意义上讲,其实BS开发属于CS开发,客户端是浏览器。浏览器实际上是个解析html DOM的工具,你完全可以自己做个特殊的html解析器做你的客户端,甚至不用html都行,但是要基于http协议,能够处理常用的http请求。
浏览器实际上是一个灵活性很高的可编程客户端,能够执行javascript程序,能够安装其他扩展,能够解析html和css并渲染成图形界面。
浏览器的高度灵活性使得web开发充满了想象空间和创意,使web比其他任何CS软件都多姿多彩,同时由于BS程序无需另外安装客户端就可以运行,所以BS软件比CS软件更方便,这也是为什么大量CS应用转向BS的主要原因。
利弊总是相对的,给用户带来方便的同时,BS也使开发变得更麻烦。
上一篇:浏览器发展历史[zz]
下一篇:web开发的思考(二)