什么时候需要服务器,数据库又是什么?
我一开始接触互联网技术是学习前端,我在本地打开.html 文件就能看到写好的网页,导致我产生了网页不需要服务器的错觉。
其实,上面的行为只能算查看本地文件,一旦其他人想通过域名访问我的网页,就需要服务器了。
服务器长什么样?
服务器在家里也许是一台配置较好的主机,在专业机房里,它通常是像抽屉一样的薄片(叫“机架式服务器”),成千上万地堆在巨大的恒温机柜里。而我们比较熟悉的就是在阿里云或腾讯云买到的一个“IP 地址”和“登录密码”。
服务器的本质是什么?
服务器也有 CPU、内存和硬盘。不同的是,服务器的硬件是耐操型的,设计目标是连续开机 10 年不关机、不崩溃。服务器没有精美的界面,全靠输入命令操作,这样可以节省所有资源来处理用户的请求。如果我们的个人电脑是客户端(发起请求的人),而服务器是服务端(响应请求的人)。
服务器在网站中到底在忙什么?
当你在客户端输入一个网址时,客户端通过网络协议(如 HTTP、FTP 等)向服务器发送请求。请求中包含所需资源或服务的详细信息。服务器接收到请求后,会解析请求内容并执行相应操作,例如读取文件、查询数据库或运行程序逻辑。
处理完成后,生成包含结果的响应。服务器将处理结果以响应的形式返回给客户端,通常包括状态码、内容类型等元数据。
服务器需要管理硬件资源(如 CPU、内存)和软件资源(如操作系统、服务),并确保数据安全性,例如身份验证和加密。
那数据库又是什么?
想象一下,你建了一个许愿墙网站。用户会在网页填写自己的愿望,填写完后网页把愿望传给服务器,服务器会先检查一下,检查无误后存进数据库,存好后,服务器告诉网页愿望已经存好,网页才会弹出提示提醒网页前的用户,愿望存好了。你可以把数据库理解为“账本”或“档案柜”。
那我们为什么非要用数据库?不能用“文件”存东西吗?
在互联网世界,数据库比普通文件厉害在三个地方:
超快查找
想象你的许愿墙有 100 万条留言。用记事本找某人的留言要从头翻到尾;数据库就像有极其详细的索引,一秒钟就能定位。处理高并发
如果 100 个人同时往一个记事本里写字,记事本会“死锁”崩溃。数据库能处理高并发,让成千上万的人同时读写而不出错。严密的逻辑
数据库可以规定:年龄必须是数字,邮箱必须有 @ 符号。它像个严格的审查员,不符合格式的数据进不去。
举个“栗子”
你在刷短视频时有没有想过,为什么每个人刷到的视频都不一样?这全是服务器和数据库的功劳。
数据库存着几亿个视频文件的地址。它还存着你的用户画像:你喜欢看猫、喜欢看做菜、还是喜欢看科技产品,数据库里有一张表,专门记录你给哪些视频点了赞。
服务器运行着推荐算法。它从数据库里调取你的喜好数据,快速计算出你接下来最可能喜欢看什么,然后把那个视频推送到你的屏幕上。
再比如
你用 12306 买票时,
数据库记录着:G101 次列车,05A 座,状态:未售出。当你下单的一瞬间,数据库必须把这个状态改为“已售出”。
服务器在过年抢票时,很多人同时点“买票”。服务器负责排队。它会告诉数据库:“别急,先处理张三的请求,李四慢了 0.01 秒,让他等着。”如果没有服务器维持秩序,数据库可能会把一张票同时卖给两个人。
×××崩了
我们有时候会遇到某某网站崩了的情况,在用户看来,“崩了”的表现无非是“网页打不开”或者“转圈圈”。但在我们看不到的技术层面,“崩了”可能有如下几个原因。
- CPU 或内存达到极限
每有一个人访问,服务器就要运行一段代码。当访问量暴增,CPU 占用率达到 100%,它处理不过来了。这种情况下服务器虽然还在运行,但它对你的请求没有反应,或者处理得极其缓慢。 - 网络入口/出口(带宽)达到了极限
服务器的数据传输速度是有上限的,如果很多人同时下载图片或视频,数据量超过了网卡的上限。你的请求根本传不到服务器那里,或者服务器发出的数据卡在半路。 - 数据库故障
你的请求传到服务器了,但是数据库故障无法返回结果,用户界面就会看到“数据加载失败”或“系统繁忙”。
当然现实情况下,崩了的原因往往是相互拖累的。每当大促或晚会前,工程师会进行“扩容”来避免“崩了”的情况发生。可以临时增加多个云服务器,或者调整负载均衡器,把用户的请求均匀的安排在不同的服务器。
我们游玩大型游戏时,经常让我们选区,其实也是让我们选择不同的服务器物理集群。在早期的早期的《魔兽世界》或许多页游,一区的账号去二区就得重新升级,这是因为一区和二区拥有完全独立的数据库,它们不聊天,也不共享档案。现在的《王者荣耀》,不管你从 q 区还是 v 区进入,你都可以加到另一个区的好友。
每个区不代表只有一台服务区,一个“区”通常是一个服务器集群。登录服务器负责校验你的账号密码。大厅服务器负责显示你的背包、好友、任务。战斗服务器当你进入副本或开局的一瞬间,系统把你踢给专门处理战斗逻辑的服务器。聊天服务器专门负责处理喇叭和公会聊天。
有一个趣味小思考:
有些游戏在深夜人少的时候会进行合服,把一区和二区合并。根据之前聊的,你觉得“合服”最核心的操作是处理服务器还是处理数据库?(狗头)
- Title: 什么时候需要服务器,数据库又是什么?
- Author: 虚帅
- Created at : 2026-02-20 00:00:00
- Updated at : 2026-02-26 18:07:16
- Link: https://liujasmyn411.github.io/2026/02/20/server/
- License: This work is licensed under CC BY-NC-SA 4.0.