开发者学堂课程【Node.js 入门与实战:Web开发本质】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8241
Web开发本质
目录:
一、Web开发本质
二、客户端处理响应
三、关于C/S 和B/S
一、Web开发本质
1、Web 开发牢记以下三点:
(1)请求,客户端发起请求。
(2)处理,服务器处理请求。
(3)响应,服务器将处理结果发送给客户端。
首先客户端请求可能是客户端用的浏览器,通过浏览器访问京东或者淘宝,这样的客户端浏览器,有可能是安卓手机的 APP,可能是 ios 手机的 APP。
客户端向服务器发起请求,或者说浏览器向服务器发请求,一般情况下用的都是HTTP 协议或者是 HTTPS,所以说HTTP协议这个是不变的。
无论是什么客户端向服务器发情报文件请求,服务器拿到这个请求以后进行处理、解析这个情报文件,处理完毕后,服务器又把结果响应给客户端(如果是浏览器就把结果响应给浏览器,如果是安卓 app,那么就响应给的手机 APP上),然后由不同的客户端对这个响应进行再解析,做出不同的展示,这就是一个外部开发的本质过程。
Web 开发和单机开发应用程序核心区别就是:单机程序要执行什么,这个程序就直接执行了,但是 web 开发不一样,要做什么事,不是自己去做,而是提交给服务器,服务器帮做完以后再把结果响应给回来。
2、举例:对比一个单机版计算器和 Web 版计算器
一个单机应用程序的计算器,也就是桌面应用程序,现在要想让它实现一个加法计算非常简单。比如,输入1,再输入加6,然后点击等号,这个计算器把1加6算出来以后,就直接把结果显示出来。
但是,同样的一个计算器的功能,如果要把它做成Web应用程序,那么这个时候运行的是一个什么样效果呢?
假设这是一个网页版的计算器,在文本框里面,输一个1,另一文本框里面选一个加号,再输一个6,当点击等号的时候,这个本地的Web用数据把这个一加六的数据发给遥远的服务器,可能服务器在北京,在北京的服务器帮计算一下,一加六,结果是七,最后再把这个七响应回客户端,然后客户端一看就看到这个七了。
所以说,Web的开发核心就是:
要做什么事都不是自己做,都交给服务器来做,Web要做就是向服务器发起不同的请求,服务器就知道要做不同的处理,处理完毕以后把结果再反馈回来。无论是用什么 PHP、JSP、ASP 等所有这一切都是web开发。
一个简单的计算器的功能,就像把1加6这个计算发给服务器,服务器算完以后再发给浏览器吗是完全没有必要。所以说这个Web应用程序里面,有很多可以写客户端JS的脚本,客户端脚本处理一些简单的计算,对于复杂的计算由服务器帮忙算再返回结果。
二、客户端处理响应
服务器响应完毕后,客户端继续处理,其中:
l 浏览器:解析服务器返回的数据。
l ios、 Android 客户端:解析服务器返回的数据,并且通过 ios 或 Android 的 UI技术实现界面的展示功能
三、关于C/S 和B/S
l C/S(Client/Server):客户端服务器
l B/S( Browser/Server ):浏览器服务器
CS的全称是 client/server 客户端服务器。BS的全称是 browser/server 浏览器服务器。这是开发软件的两种的架构。
比如,QQ或者阿里旺旺等都有一个独立的客户端,这样的应用程序架构就把它叫做CS架构。它是有独立客户端的,启动QQ,通过QQ客户端连接QQ服务器,然后进行操作,这个叫做有独立客户端的的CS架构。
有些应用程序,它没有客户端,比如打开网页,通过浏览器来打开这个网站的,这个网站并没有给开发一个独立的客户端,而通过浏览器来访问他的网页,访问他的邮箱之类的,这种叫做 BS。
有独立客户端的,叫做 CS 架构。没有独立客户端,通过浏览器来访问的,就叫做BS 架构。 CS 也叫客户端服务器,BS也叫浏览器。
那么,需要开发一款应用程序的时候,如果你来做这个架构,那么你是会选择BS架构呢,还是会选择 CS 架构呢?
比如说,要做12306这个购票网站,或者购票应用程序,你会把它开发成 BS 还是CS?思考一下为什么?
BS 的好处就是,不需要被每一个用户开发成为客户端,只要把后台网站服务器做好后,全世界任何一个角落,只要他有浏览器就能使用。这样开发完毕后部署非常方便。维护也非常方便。当12306需要升级的时候,是要升级服务器,所有用户都能通过浏览器看到该网站的升级。缺点是:用户体验不是很好,可能不是很流畅。
对于普通大众来说,就是使用的BS架构。但对于站点售票大厅里的工作人员来说,使用的就是专门 CS 架构。售票员们和浏览器用户们使用的都是同一套数据库。
但也有可能,售票员们有特殊途径可以留几张票,在浏览器上却看不到的情况。无论怎样,都是使用同一套结构的系统。但售票员的系统是专门用来售票,考虑到方便、快捷、效率等因素,他们的系统有更多的快捷方式,更方便的查询方式,快速出票等,非常稳定和流畅,不会因为使用人数多出现卡顿、崩溃的情况。
所以说,同一套系统,既有BS架构模式,也有CS架构模式,基于用户需求是什么。
手机上的12306客户端,这个也是CS架构。
总结:当需要开发一款应用程序的时候,到底选择 CS 架构还是 BS 架构,就看用户的需求。BS 的好处是部署、维护方便,缺点是用户体验稍差。
CS 的好处是用户体验好,和服务器连接稳定,缺点是需要为客户独立开发终端,升级也得连客户端一起升级,部署工作量大。