Insights·2026-06-11

什么是后端?一部始于1993年留言板的问题解决谱系

后端是服务器接收请求、处理数据并返回结果的领域,它诞生于1993年解决留言板问题的过程中。预先做好的HTML文件无法把访客刚留下的留言展示给下一个人,于是服务器开始在每次请求到来时当场组装页面,这就是起点。此后三十年的发展史也是同一模式的重复:问题出现,解决它的技术随之登场。了解这套谱系之后,非开发者也能对AI下达关于后端的具体指令。

后端为什么会诞生?

1993年的服务器只是一个仓库。用户输入地址,服务器把预先保存好的HTML文件取出来扔过去就结束了。但留言板出现后撞上了一堵墙:要把访客A刚留下的留言展示给访客B,就得提前知道谁会在什么时候留下什么内容,而这是不可能的。

于是思路发生了转变:不再预先制作文件,而是在请求到来时当场生成页面。1993年问世的CGI是第一个工具,服务器的角色从保管文件变成了制造文件。这就是服务器端渲染,也是后端的出生证明。

数据库、MVC和API分别解决了什么问题?

留言需要一个存放的地方。最初是一行一行写进文本文件,但积累到数千条后,找一条留言就得把整个文件读一遍。这正是1995年MySQL等关系型数据库登场的原因。

随着功能增多,代码在一个文件里搅成一团,于是出现了把职责拆分为数据(M)、画面(V)、调度(C)的MVC模式。接着2007年iPhone登场。应用需要的不是HTML而是数据,曾经的HTML制造者又变成了用JSON供应数据的API服务器。后端与前端作为职业明确分家,也正是在这个时间点。

会话、缓存和事务为什么会出现?

HTTP没有记忆。即使登录了,下一次请求时服务器也认不出你。于是有了发放号码牌的会话(Session)和把号码牌存在浏览器里的Cookie;当服务器增加到多台时,又出现了靠签名验证防伪的JWT。密码则经过哈希处理后存储,即使数据库被攻破也无法还原出原文。

用户增多、服务器变慢,于是出现了把常用数据放进内存的缓存(Redis);转账绝不能中途断掉,于是出现了"要么全部成功、要么全部取消"的事务。如果仍然到达极限,就采用横向扩展——不是升级一台服务器,而是增加服务器数量;代码块过于庞大时,就按功能拆分成微服务。这一切都是解决问题的产物。

后端语言应该选哪一个?

先说结论:选哪个都行。登录的本质是"如果ID存在且密码正确就放行",两个条件判断而已。Python在if后面加冒号,Java用花括号,语法差异仅此而已,结构完全相同。PHP、Python、Java、Go看起来再不一样,做的事情只有一件:接收HTTP请求、处理、返回响应。学会一门,其余只是方言。

非开发者了解这套谱系后会有什么不同?

你对AI下达的指令会变。"帮我做个登录"会变成"认证用JWT,密码哈希后再存储"。掌握了脉络,就能看出AI产出里缺了什么;指令越具体,结果的质量就越高。SH Consulting的Vibe Coding培训之所以按历史顺序讲解后端,原因就在这里。每项技术都是为了解决某个问题而诞生的,知道了那个问题,技术就不再靠死记,而是被真正理解。