主题
第 2 章 前端与后端 · 舞台与后厨
一个软件通常分成两半,跑在两个完全不同的地方。
前端(Frontend)是跑在用户设备上的那一半,浏览器里的页面,手机上的界面。它由上一章说的 HTML、CSS、JavaScript 组成。你听过的 React,是一种把界面做成积木来拼的流行框架,我们自己的网站就是用它搭的。
后端(Backend)是跑在你的服务器上的那一半,处理登录,读写数据库,验证权限,调用区块链。用户永远看不见它,但它掌管一切规则。
为什么要分成两半?用餐厅来想。前厅的菜单、桌椅、装修是前端,顾客看得见摸得着,甚至可以拿笔在菜单上乱涂。后厨和收银系统是后端,菜怎么做,账怎么算,轮不到顾客插手。关键在这里,前端的一切都在用户手里,用户可以看到它的全部代码,也可以随意篡改它。所以任何真正重要的东西,密码验证、金额计算、权限判断、数据库钥匙,都绝对不能放在前端。
这就引出了本书最值钱的一句话,永远不要相信前端。顾客说"我刚才已经付过钱了",你也得去收银系统里查记录,光听他说不行。无数真实事故,都源于有人把秘密或规则放在了用户碰得到的地方。
放到我们自己的项目里看,用户看到的上传页面是前端。真正验证文件、决定要不要在链上铸造凭证的逻辑,是后端。界面可以随便改,规则必须锁在后厨。
试一试
在任意网页上右键选"查看网页源代码",你看到的就是前端的全部。体会一下"用户能看到前端的一切"是什么意思。