「AI开发小程序教程」五、服务器的那点事

2026-05-22 | 6 分钟阅读 | 分类: 微信小程序

上篇开发的小程序,数据是存储在手机本地的,用户更换手机或者重新安装微信之类的操作,都会丢失原来的数据。怎么解决这个问题呢?那就是把数据存到云端(服务器)。

当然,服务器不是小程序必须的,如果你的小程序根本不涉及用户数据的存储,比如:

  • 只是展示一些静态数据或者有限的数据(如吃饭推荐)
  • 通过其他服务查询一些数据展示给用户(比如天气查询)
  • 提供一些计算工具实时计算(如贷款计算器、天数计算器、亲戚计算器等)
  • 随机生成类(如生成学生计算题)

但一旦涉及到用户自己的数据存储,你就需要考虑是否要给用户完美的体验了,比如:

  • 日记、记账、纪念日记录等
  • 在线商城、论坛、资讯
  • 还有很多很多,其实我们常用的大部分应用都是需要服务器的,微信也是

所以这篇,我们先来聊聊服务器的那点事,看看你之前觉得神奇的东西,是不是纸老虎。看完本文,你可以达到大多数普通程序员的认知水平。

什么是「云」&「服务器」

你一定听说过「云」这个字,云端存储、云上贵州、阿里云、百度云、腾讯云、华为云等等。

“云计算”最早诞生于1996年,并在2006年由谷歌正式推向大众视野。

这个云可不是天上的那个云,听起来好像数据上天了一样,其实不是,数据有可能只是在传输的时候上天了(5G之类的无线传输),最终还是存储在了地球上某处的一台服务器上。

啥是服务器?你可以简单地认为是一台电脑。

为啥用服务器?

其实,你家里的电脑,如果一直开着并接入到互联网中,也可以是一个服务器。你可以在电脑上开放一个服务给互联网上的其他人用,估计互联网早期就是这样。

但现在,我们一般是用专业的服务器来做这件事。通常,很多服务器放置在一个屋子里(又称机房),需要耗费很多电(要24小时不断电)、产生很多热(需要开空调)、产生很多噪音(所以一般不会在居民区),但是它的本质,就是电脑。

怎么获得服务器?

在阿里云之类的各种云没像现在这么被人熟知时,就是向有大型机房的服务器商租一个服务器。

如今你可以选择阿里云、腾讯云等大厂提供的云服务器(或者使用更低成本的轻量服务器)。

你甚至可以租用一个容器:一个大楼(电脑)中的一个小房间,来运行你的服务程序。

在AI场景下,你还可以租用算力(显卡、GPU)。

与服务器怎么交流?

我们日常常用的与服务器交互的架构有两种:

  • B/S架构:即浏览器(Browser) - 服务器(Server),当你在电脑或手机的浏览器中浏览网站时,就是这种方式。多年前,智能手机还没有兴起的时候,都是用这种方式上网的。
  • C/S架构:即客户端(Client) - 服务器(Server),手机里安装的那些APP,都是客户端。随着智能手机的发展,现在我们依赖手机远远多于电脑了。

不过有时候,B/S和C/S可以使用同一种交流技术,比如HTTP,就是浏览网页时用的。微信小程序往往是通过这种方式来从你的服务器上获取数据。

我们以浏览百度为例,来看一下,当你在浏览器里输入www.baidu.com 之后,按下回车键之后,发生了什么?

首先百度网站就在那里,你访问或者不访问,他都在那里,我们先看百度做了什么:

IP地址

首先,百度有台电脑(服务器),上面放了百度的网页。这台电脑联网了,他有一个IP地址(就是他在互联网上的地址/门牌号),你可以通过这个地址找到他。

所以互联网上的每一台电脑都需要有个地址,这个地址由32位长度的,每位都是由二进制的0或1组成。我们常见的IP地址的表示192.168.1.1、111.63.65.247之类的,其实是每8个为一组,分为了4组,换算过来的。所以能表示的地址有限,大约42亿个地址,并且大部分都是美国的,因为互联网是人家发明的,分给中国的其实都没多少。更何况随着手机之类的设备变多,这些地址肯定是不够用的。所以后来又出了一个IPv6的新版,新版的地址非常多,可以给地球上每一粒沙子一个地址。目前,这两种地址都在使用。

现在你知道,百度的电脑可以通过这个数字找到。但是问题来了,要是跟以前的电话本一样记录这些地址,在访问百度时,查一下本,看看地址是啥;访问腾讯时,又要查一查腾讯的地址是啥,不太现实。况且一开始我们也得知道这个地址,百度一个个告诉大家吗?要是地址换了,又怎么办?所以,我们自己记地址是绝对不行的。

域名

这个时候,域名(domain name)出现了,域名其实是专门的服务商来提供的地址薄服务的,.com是一个服务商,.cn是中国的服务商,.net也是一个服务商,还有些不常见的.xyz、.club等等,但他们都是顶级域名服务商,他们提供的服务是把XXX.com这样的昵称,查一下地址,然后给你。

百度说,用户记不住我们的地址啊,我们找.com购买一个好记的昵称吧,就用「众里寻她千百度」baidu 作为我们的昵称吧,所以最终就是baidu.com,然后告诉服务商,如果有人问baidu.com的地址是啥,你就把我们电脑的地址给他。然后我们告诉用户我们的昵称就好了,他们记得住昵称。

域名服务器

所以电脑是怎么知道要问谁要呢?

  • 一般来说,电脑(或路由器)上会配置一个DNS(Domain Name System)服务器地址,如8.8.8.8,电脑需要查地址的时候,先找他。
  • 他如果不知道,就会去找根服务器。他自己早就记了根服务器的地址。
  • 根服务器会告诉他.com顶级域名服务器的地址,他记下来,再去找.com服务器。
  • .com服务器告诉他,你去找一个叫baidu.com的权威服务器,他记下来,再去找baidu.com权威服务器。
  • baidu.com权威服务器告诉他,地址是111.63.65.247,他记下来,并且告诉我们的电脑。

这个一层一层查找的过程,叫做DNS解析。

图片

你可以看到,询问这个过程要经过好多服务器,速度很慢。难道每一次访问baidu.com都需要这样吗?当然不是,8.8.8.8问了一次之后,已经知道了,他记下来了,在一定的时间内,他会直接说:知道。这种叫做缓存。

图片

除此之外,电脑上可能运行了多个服务,怎么知道用户需要的是哪个服务呢?这里实际上有个端口的概念。端口是个数字,相当于一个有编号的门。

当访问http://www.baidu.com时,实际上使用了默认的80,即http://www.baidu.com:80。

当访问https://www.baidu.com时,实际上使用了默认的443,即http://www.baidu.com:443。

浏览器为了使用的方便,不需要我们手动加上80和443,http默认就是80,https默认就是443。

图片

而门(端口)的背后,有一个人(程序)那里等着接待来客。

现在我们是服务器

所以,小程序在需要后端存储用户数据时,我们要提前做的

  • 买一个服务器,服务器自然有一个IP
  • 买一个域名,比如向.com买一个域名比如 abc.com,并告诉如果有人问 app(自己定).abc.com ,就告诉他IP,这个过程叫域名解析
  • 在服务器上运行一个程序,这个程序看着80号端口有没有数据过来

会在后续文章中详细讲解怎么操作。

省略的部分

当然,从我们的电脑到百度的服务器,中间还要有路由器、光猫、网线、复杂的网络、各种服务器,最终才能到百度的服务器。这里也很复杂,不过你可以不关心这些,总之就是数据从网线或者信号塔传输了很久,走过了很多路由器和服务器,最终到了百度服务器就行了。

鲁ICP备2023028957号鲁公网安备37059002000210