模块 2 · 第 3

「运行」发生在哪:本地机器 vs 远程服务器

是什么

代码总要在某台机器上运行。弄清楚它跑在你自己的电脑上还是远方的服务器上、跑在用户的浏览器里还是服务端,是理解很多技术问题的关键。

解决什么问题

如果分不清代码跑在哪里,就容易混淆"本地能看到"和"用户也能看到",也很难理解为什么同样的代码在自己电脑上正常、到了服务器上就出问题。

代码不会凭空运行

每一段代码,都需要一台真实的机器来执行它。你写出的那些指令,最终要由某台电脑的处理器来一条一条地运行。

这台机器可能是你面前的这台笔记本电脑,也可能是远在千里之外的一台服务器。代码跑在哪里,决定了它能做什么、谁能看到它、以及它的行为表现。

本地和远程

本地,指的是你自己的电脑。当你在开发阶段运行代码、测试功能时,代码跑在你自己的机器上。这时候,只有你能看到它的效果——打开浏览器访问 localhost,就是在访问你本机上运行的程序。

远程,指的是互联网上的服务器。当你把代码部署到服务器上之后,它就不再依赖于你的电脑了。即使你关机、断网,程序依然在远方的那台机器上运行,任何人都可以通过网址来访问。

很多新手在开发阶段看到"页面正常显示了"就以为已经上线了,其实那只是本地运行的效果。关掉你电脑上的开发服务器,页面就消失了。

客户端和服务端

在一个上线的应用里,代码实际上会在两个地方同时运行:

客户端——也就是用户的设备。前端代码会被发送到用户的浏览器里执行。这意味着,你的前端代码对用户来说是"公开"的,他们可以通过浏览器的开发者工具看到它、甚至修改它。

服务端——也就是你的服务器。后端代码运行在服务器上,用户无法直接看到或接触到。这就是为什么敏感的操作——比如验证密码、处理支付、检查权限——都应该放在服务端来做。

这两者之间的区别不仅仅是位置上的:

  • 客户端的代码由用户控制,你无法保证它不被篡改。
  • 服务端的代码由你控制,用户只能通过你开放的接口来与它交互。

为什么这件事很重要

理解代码跑在哪里,能帮你避免一些代价高昂的错误。

如果你把 API 密钥写在了前端代码里,它就会被发送到每个用户的浏览器里——任何人打开开发者工具都能看到它。这不是一个"可能"的风险,而是一个必然的泄露。

如果你在前端做了权限检查——比如"只有管理员才能看到删除按钮"——但后端没有做相应的验证,那么任何稍有技术知识的人都可以绕过这个限制,直接向后端发送删除请求。

当你不确定 AI 把某段逻辑放在了客户端还是服务端时,问一下自己:如果用户能看到并修改这段代码,会出什么问题?如果答案是"会出大问题",那这段代码就应该放在服务端。

指挥与验收

一边讲怎么让 AI 帮你做,一边讲怎么看出 AI 做砸了。

指挥怎么让 AI 帮你做

指挥

在让 AI 实现功能时,明确说清楚这段逻辑应该在哪里执行——是用户的浏览器里,还是你的服务器上。不同的执行位置意味着完全不同的安全性和能力范围。

连接到

术语