前端、客户端、服务器、后台与下位机:一次深度解析

发表时间: 2018-09-10 13:11

每次做项目总是会涉及到服务器与下位机之间的通讯,往往会涉及到客户端、服务器、前端、后台、下位机这些概念,对于做电子研发的初级工程师来说,往往会理不清这些概念,所以这篇文章打算简单的介绍下这些术语,分析他们之间的关系。另外,这篇文章作为自己的一篇技术笔记,仅供参考,如有错误之处,还望指正。

客户端:可以向服务器发起请求的一方叫做客户端,比如一款APP

服务端:顾名思义,能够响应客户端请求的一方叫做服务器,比如云服务器

前端:与用户进行直接交互的网页或者界面

后台:能够对数据进行管理的模块,比如数据库系统

下位机:属于被动控制的一方,往往是某一设备,与上位机概念对应

上位机:主动控制的一方叫做上位机,比如APP或者一款PC机上运行的软件

虽然介绍完这些概念,但感觉还是比较抽象,那么它们之间到底是如何联系的呢?下面以一个具体的案例进行分析。

案例:现在电影院大多都有“娃娃机”这样的设备,用户扫码登录后可以通过手机界面按下“开机”指令,然后就成功开启一台设备,用户可以操作“已开启”的设备抓取“娃娃”。

在以上案例中,主要流程:

1.首先用户通过手机界面按下开机指令,然后客户端将指令作为一个“开机请求”发 送给服务器。

2.服务器通过接收解析得到请求内容后,会去调用后台CGI程序对数据库进行操作,比如会先访问数据库,查询当前设备的状态,然后在状态“合法”的情况下发送开机指令给下位机,下位机执行并且将执行结果返回,这个查询操作是后台程序完成的,不是服务器执行的,只不过后台程序在操作完成后会将处理结果返回给服务器。

3.服务器在接收到CGI程序返回的处理结果(成功或失败)后,再将结果返回给客户端,客户端再将结果显示在前端界面。

以上是整个操作的大体流程,在这个流程中,手机界面就是“前端”,用户通过前端页面发起开机请求,那么这个请求是谁发出去的呢?是客户端。发给谁呢?是服务端。服务端接收到请求后会自己处理请求吗?不不不,不会,它会调用一个后台程序去处理请求,然后等待后台程序将结果返回,比如它调用一个exe程序对数据库进行状态查询操作并且执行开机指令,然后这个exe程序将处理结果返回给服务器,服务器再将结果返回给客户端。这个exe程序就是后台程序了,通常也会用php去实现对数据库的操作(增删改查)。或许有人会问,为什么服务器自己不能处理请求,反而会调用一个后台程序去操作呢?这不多此一举吗?你想,服务器它会只与一个客户端通讯吗?肯定不是,服务端往往需要快速并且“同时”响应多个客户端请求,这就要求它不能为某一个请求花费太多时间,如果每个客户端请求都要服务器去处理,那么服务器的延时可想而知。通常服务器会开启“多线程”模式,在线程中调用后台程序去处理请求,然后后台程序将处理结果返回。以上介绍了前端、客户端、服务器、后台这些对象之间的关系,那么我们一直谈论的下位机呢?下位机在整个系统中处于什么位置?如果从控制方和被控制方来说,前面所说的客户端可以理解为上位机,就是控制方,那么下位机就是被控制方,比如这个案例中的“娃娃机”。下位机往往需要与服务器通讯,并且可以受控地完成一系列动作,比如“开机动作”或者在本案例中受手柄控制做出相应动作。下位机的设计往往会包含硬件电路设计和单片机软件编程。下位机与服务器之间通讯可以采用TCP协议(工作在传输层),数据透传模式,而客户端与服务器通讯会采用应用层协议,比如HTTP,HTTPS或者Websocket。

好了,以上就是关于前端、客户端、服务器、后台、上位机、下位机的一些基本概念和它们之间关系。