01
前言
Web开发是一直以来程序员的热门发展方向,尤其是全栈工程师的薪资待遇很丰厚,最近有很多小伙伴问到我关于Web开发的问题,最常见的就是“web开发难吗”、“学什么语言做web开发好找工作”。作为一个多年在线下教学web开发的老师,今天我用比较容易理解的方式来给大家讲讲web开发最重要的东西——服务器架构的原理,大家可以通过这个入门的讲解来自己给自己答案,一切事物看本质。0
服务器框架的原理和技术
首先我们先来看一张Web开发的服务器框架原理图,我们从这里开始了解:暂时先不对里面的板块做详细分析,文章后面会具体讲解,我们先来梳理一下web开发的服务器框架原理。从图中的白箭头我们可以看出来,服务器的响应过程可以大致分为两个流程:请求数据过程:客户端→web服务器→业务服务器→缓存服务器→数据库返回数据过程:数据库→缓存服务器→业务服务器→web服务器→客户端
大多数数据需要走这两个过程。举个例子,一个叫王二麻子的同学想从电脑上查一下自己的英语四级考试分数,这时候他在电脑上登录查询页面的时候,就是在客户端。当他在客户端输入完个人信息后点击查询按钮时,客户端就开始向web服务器发送王二麻子的数据请求,web服务器命令业务服务器去缓存服务器核实和处理一下,缓存服务器带着王二麻子的数据再去数据库调取数据。当数据库调取完王二麻子的数据之后,就立马告诉缓存服务器,缓存服务器又跑去告诉业务服务器,业务服务器屁颠屁颠地把王二麻子的数据交给web服务器,web服务器大手一挥,终端悄无声息地就把王二麻子的数据呈现出来了,王二麻子一看数据可能就大骂一句:“XX,又要重考!”过程就是这么个过程,虽然看起来跑来跑去很麻烦,但其实不麻烦的,计算机分分钟能处理千万个王二麻子。0
服务器各个板块讲解
1.客户端web开发目前主要的客户端类型有IOS、Android、PC(电脑)和移动(手机等)四种客户端,这个就不多讲了,通常意义上,每一个用户的界面就是客户端了,用来呈现图片、文字、视频等数据给用户查看。.web服务器web服务器的主要功能有个:负载均衡和静态资源服务器。(1)负载均衡什么叫负载均衡?我们先来看一张图:这是最简单的一个服务器架构了,它没有web服务器,就只有客户端、业务服务器、数据库组成,在数据量较小的情况下,它是可以正常运行的。假如一个业务服务器能支持个客户端访问,只要不超过台设备访问都是OK的,但如果超出了个客户端访问呢?那就只剩下个方法,一是通过换开发语言来重构业务服务器以达到提升它的性能,这涉及开发语言的性能,后面我们再讲;二是增加业务服务器的数量来保证大量用户端的正常访问,,增加负载能力,这也是较为常用的方法。那么问题来了,增加业务服务器的数量,但它们“长得”都差不多,客户端就很郁闷,我该访问哪个服务器?所以需要一个web服务器来统筹分配,分配客户端应该访问哪个业务服务器,合理分配资源,避免导致客户端统一访问某个业务服务器而造成负载超核,这就是web服务器的负载均衡作用。()静态资源服务器不是所有的数据请求都要访问数据库。前面我们所说的从客户端一步一步跑到数据库来进行数据的请求和返回数据动态请求,而有些数据存储在web服务器上的,不需要访问数据库就能获取数据到用户端,称为静态请求。比如某些网页不常变化的一些文字、图片、视频等,基本就固定在某个地方做展示,开发员不调整就不会更新的那种,静静地待在那里,谁进入页面就显示出来,这些数据放在web服务器上而没有存在数据库,便于更快地展现给客户端。.业务服务器业务服务器的主要功能是:接受数据、处理(查询、写入)数据、返回数据三方面。(1)协议目前服务器对数据的传输和处理主要遵循两种协议: