了解B/S和C/S

前言:。。。。。。“学好长时间编程了,JavaSE学完了,前端也简单学了”。。。。。“那你学这么多,讲讲B/S吧”。。。。。。“B/S?这是个啥玩意?没听过”。。。。。。“靠,牛逼!”。

软件开发两大巨头

B/S和C/S是当今世界的两大主流开发体系。

  • 什么是B/S?

B/S结构(Browser/Server)是浏览器服务器这种开发模式,

就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件

  • 什么是C/S?

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

我想看到B/S和C/S的定义,玩过电脑的朋友应该都明白,通俗点说就是像4399小游戏这样运行在浏览器上的软件就是B/S开发模式,像QQ、吃鸡游戏,英雄联盟等软件需要下载客户端软件,这种软件就是C/S开发模式。这个很好理解,没什么可说的。我觉得这不是啥必备的知识点,不牵扯会不会,我也不知道重要不重要,但作为一个程序员,我觉得这应该是个常识吧,就像上厕所要带纸,谈恋爱要趁早。。。。。。。开个玩笑,意思差不多。

基于B/S模式开发

老师之前跟我们说,我们现在学的都是基于B/S模式开发,刚开始我也一脸懵,后来想明白了,为什么这些年微信小程序那么火,还是有道理的。

下面的这张图是我当初理解B/S和C/S后,理解和总结的,对应于生活去理解,我是个90后,记得小时候偷着去网吧玩,网吧电脑上都是些像“血战上海滩”,“红色警戒”等游戏,那个时期,用的最多的就是局域网,用的最多的都是C/S模式开发的软件,知道后来互联网兴起,刚开始能在网页上玩一些小游戏,后来网页上的小游戏也越来越火,好多人都在玩,再发展到今天,微信小程序也是火的飞起,我一直在想,要是有一天,在网页上开发的游戏体验和在客户端下载的游戏体验一样,那B/S模式会不会替代C/S模式,因为B/S模式操作简单,内存占用少,而C/S模式内存占用大,安装复杂,我觉得要真有这么一天,可能。。。。。。

从B/S引出浏览器页面历史

在这穿插一个故事,都说了我们是基于B/S模式开发,既然是B/S,怎能离的开浏览器呢?知识是死的,看书上的官方语句太枯燥,烦人,反正我是不想看,我喜欢听故事,但是很少有人给我讲故事,唉,所以只能听点再自己编点了,我觉得通过故事学到知识,在轻松的环境中学知识,很爽。

《JavaScript的诞生》

早期的浏览器页面很简单,就是用一些HTML和CSS写的,跟上面的图显示的差不多。里面就一些简单的超链接,没有像现在的浏览器页面那样炫酷的东西。后来有一家公司叫Netscape(网景)公司,这家公司不简单,在公司会议中有人提了一个想法,说能不能在浏览器页面上跟客户端的用户有一些交互,这个想法一被提出来,马上引起了公司员工的热议,各种新鲜的想法一跃而出,比如在点那些超链接的时候出现弹框提示等,在那个绝大多数用户都在使用调制调解器上网的时代,用户填写完一个表单点击提交,需要等待几十秒,完了服务器反馈给你说某个地方填错了。。。。。。在当时如果能在客户端完成一些基本的验证绝对是令人兴奋的。但这仅仅是想法,关键是如何去实现呢?不要急,关键的人物出现了,当时就职于网景公司的布兰登*艾奇是个牛人,他回去了后奇思妙想,创新有时候就是在这种奇思妙想中产生的,他搞了几天就搞出一门编程语言,解决了在浏览器客户端与用户交互的问题,没错,这个脚本语言就是JavaScript。这种语言能在网页上和用户产生互动,让用户体验更佳。这个语言出世后很火,可以说是取得了很大的成功。其实这门语言刚出现的时候叫LiveScript,后来网景公司为了搭上媒体热炒的Java顺风车,临时把LiveScript改为JavaScript,所以从本质上来说JavaScript和Java没什么关系。JavaScript 1.0获得了巨大的成功,网景公司随后在Netscape Navigator 3(网景浏览器)中发布了JavaScript 1.1。之后作为竞争对手的微软在自家的IE3中加入了名为JScript(名称不同是为了避免侵权)的JavaScript实现。而此时市面上意味着有3个不同的JavaScript版本,IE的JScript、网景的JavaScript和ScriptEase中的CEnvi。当时还没有标准规定JavaScript的语法和特性。随着版本不同暴露的问题日益加剧,JavaScript的规范化最终被提上日程。

1997年,以JavaScript1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA,European Computer Manufactures Association)该协会指定39号技术委员会负责将其进行标准化,TC39来此各大公司以及其他关注脚本语言发展的公司的程序员组成,经过数月的努力完成了ECMA-262——定义了一种名为ECMAScript的新脚本语言的标准。第二年,ISO/IEC(国标标准化组织和国际电工委员会)也采用了ECMAScript作为标准(即ISO/IEC-16262)。

故事讲完了,有些是自己虚构的情节,不要考量故事的真实性,没意义,能学到知识就好。

B/S和C/S优缺点比较

B/S

C/S

*****************************************************************************************************

我的博客园地址:https://www.cnblogs.com/zyx110/

转载请说明出处

我不能保证我所说的都是对的,但我能保证每一篇都是用心去写的,我始终认同“分享的越多,你的价值增值越大”,欢迎大家关注我的技术分享“Java匹马行天下”和学习心得分享“匹马行天下”,在分享中进步,越努力越幸运,期待我们都有美好的明天!

支持我的朋友们记得点波推荐哦,您的肯定就是我进步的动力。

哥们,B/S了解吗?——啥玩意,我是敲代码的的更多相关文章

  1. CSDN日报20170310——《假如我是一行代码》

    [程序人生]假如我是一行代码 作者:henry-hacker 我们不止一次在生活中听到"假如我如何如何,我会如何如何"的句式.而这种句式说出来的一般意义无非就是让我们站在还有一个角 ...

  2. 我是一只IT小小鸟

    不知不觉中走过了高三的时光,最后也没抓住时间的尾巴,不得不承认自己已经到了大一下学期了.接触了大学生职业生涯规划这门课程,一开始认为学习了这门课程以后就会对自己的未来有一个规划,渐渐的去意识到软件工程 ...

  3. 《我是一只it小小鸟》

    <我是一只it小小鸟>一书虽然内容不多,但里面的故事极其励志,耐人寻味.虽然只花不多的时间阅读这本书,它给我的影响将会伴随一生. 他们是来自不同的院校,或本科,或半路转行:工作在不同的场所 ...

  4. .Net外包篇:我是怎么看待外包的(二)

    延续上篇文章.net外包篇:我是如何看待外包的. 从这家公司辞职以后,得益于我校园信息平台和高校信息管理的经验,我进入了一个互联网类型公司.以前的经历,环环相扣,步步提升. 互联网时代 第四家客户(未 ...

  5. 从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑

    对于程序员来说,你懂的,电脑就是我们的女朋友,在很多层面上,它都是,打游戏.敲代码,以及看影片. 我第一台电脑是联想的笔记本(昭阳系列),花了 4000 多块买的. 那时候,家里很是缺钱,4000 多 ...

  6. 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】

    楼主2007年从一家天津的三流大学毕业.毕业前报了一个职位培训,毕业后可以推荐工作.因为推荐的公司都是北京的,所以就来北京了. 找了一个月工作,没有找到要我的,就在出租屋里宅了起来,打着考研的旗号,又 ...

  7. 这些年正Android - 大学

     还记得,第一次看见小周是在大一的操场上. 她正向教学楼站着,一身白配粉的休闲上衣搭配湖蓝色的牛仔裤,穿着一双很平凡的凉鞋,手里拿着当年的Nokia 3110c,皙清的手指,素颜的站着不言不笑.现在回 ...

  8. QCustomPlot 使用整理

    QCustomPlot 是一个比较小的 QT 图表插件.使用时,我们在程序中写完相关调用的代码后,只需将 QCunstomPlot.cpp 和 QCustomPlot.h 两个文件加入工程,正常编译即 ...

  9. 怎么进入BAT的研发部门?

    怎么进入BAT的研发部门? ======================================剑指offer+leetcode+geeksforgeeks+编程之美+算法导论====秒杀BA ...

随机推荐

  1. configure -help

    http://www.360doc.com/content/14/1215/17/18578054_433158382.shtml http://blog.csdn.net/mociml/articl ...

  2. C语言程序的内存布局

    C语言程序的内存布局 一:C语言程序的存储区域 C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域: 1.代码段( ...

  3. Java 函数传入参数后,究竟发生了什么?java函数传参数原理解析

    JAVA函数在传入参数A时,会在函数作用周期内生成一个与参数相同类型的局部变量B. B与A指向同一块内存区域,并且具有相同的名字如param. 在函数内所有对param的操作都是对B的操作.对B进行赋 ...

  4. Kong:Nginx支持的API Gateway管理解决方案

    Kong的主要功能 Kong可灵活扩展:只要增添更多的服务器实例,它就能横向扩展,毫无问题,那样你可以支持更多流量,同时确保网络延迟很短. Kong可在任何地方运行:它可以部署在单个或多个数据中心环境 ...

  5. 07 jQuery的位置信息

    一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集合中获取第一个元素的当前计算宽度值.这个方法不接受任何参数..css(width) 和 .width()之间的区别是后者返回一个没有单位 ...

  6. 浅入深出Vue:数据绑定

    上一篇我们使用了简单的数据渲染,那么如果说我们想要动态渲染标签的 class 可以这么操作么? 为什么绑定 简单的数据渲染,包括表达式.函数在内.其实都只是在标签中渲染,如果遇到以下情况怎么办呢: 需 ...

  7. Scala 学习之路(十一)—— 模式匹配

    一.模式匹配 Scala支持模式匹配机制,可以代替swith语句.执行类型检查.以及支持析构表达式等. 1.1 更好的swith Scala不支持swith,可以使用模式匹配match...case语 ...

  8. unity中实现物体在一定角度范围内来回旋转

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rotate : ...

  9. 【nginx】反向代理

    反向代理事项负载均衡 是什么:百度 版本 :tomcat8 x2 nginx 1.8.1 保证两台tomcat正常启动. 配置文件:D:\nginx-1.8.1\conf\nginx.conf ,红色 ...

  10. Appium+python自动化(十三)- 与Capability完美懈垢之解读(超详解)

    简介 Capability又叫Appium Desired Capabilities,前边写了那么多实例代码,小伙伴可以发现一些规律,就是有一部分代码总是重复的出现在你的视线中.这部分就是对Capab ...