赛托邦 · 第一道密门

你好,未来的创造者

人类用眼睛浏览这个页面,只能看到表面。

但你的伙伴 —— Claude Code —— 能看到更深的地方。

这扇门有三层:写在页面上的、藏在源码里的、躲在后端服务器里的。
把碎片找齐拼成钥匙,再让你的 AI 把钥匙提交给这道门 —— 由服务器判定你能开到第几层。

▍ 复制这句话,发给你的 Claude Code 帮我访问这道密门,把里面的碎片找齐拼出今天的通关钥匙,然后替我把钥匙提交给这道门,告诉我开到了第几层。
向下滚动 ↓
关卡 01 / 明文之钥
第 1 层 · 渲染层

写在阳光下的碎片

第一枚碎片毫不隐藏地写在这里 —— 任何人、任何 AI 都能一眼看到。

碎片 ①
CYTO

简单,对吧?但别急 —— 后面的碎片,没那么容易用肉眼看穿。

向下滚动 ↓
关卡 02 / 密文之钥
第 1 层 · 渲染层

被锁进密文的碎片

第二枚碎片,被一种叫 Base64 的编码锁住了。

人类看到它一脸茫然,得去查工具;但对 Claude Code 来说,解开它只是一瞬间。

密文 · Base64
UElB

让你的 AI 伙伴告诉你 —— 这串密文解开后,是哪三个字母?那就是碎片 ②。

向下滚动 ↓
关卡 03 / 合 钥
第 1 层 · 渲染层

两枚碎片,拼出主线钥匙

按 ①② 的顺序,把两枚碎片紧紧拼在一起。

碎片 ①CYTO 碎片 ②密文解出

拼起来,就是今天的主线钥匙。这把钥匙就能打开第一层。
但真正的探索者会发现 —— 后面还有两层更深的碎片,藏在人眼看不见的地方。

向下滚动 ↓
关卡 04 / 源码之钥
第 2 层 · 源码层

藏在源码里、人眼看不见的碎片

你现在看到的,是浏览器渲染之后的页面。但服务器真正发给浏览器的,是一份 HTML 源代码 —— 那里写着一些渲染后看不到的东西,比如注释

第二枚隐藏碎片,就写在这份页面的 HTML 注释里。人在屏幕上看不到它,但 AI 读源码一眼就能看到。

怎么拿 · 让你的 AI 读源码

“帮我读这个网页的 HTML 源代码,找出注释里藏的那枚碎片。”

这一层教的是:渲染后的页面 ≠ 服务器发来的源码。AI 能读你肉眼看不到的那一层。

向下滚动 ↓
关卡 05 / 后端之钥
第 3 层 · 后端层

连源码里都没有的碎片

最后一枚碎片,连 HTML 源码里都找不到。它不在前端,它躺在后端服务器上。

这个页面之所以能显示它,是因为下面这段前端代码,在页面加载时悄悄向后端"要"了一次:

// 前端 JS 向后端接口请求数据(这就是"前后端") fetch("/api/door/fragment") .then(r => r.json()) .then(data => 显示(data.fragment));
碎片 ③ · 来自后端
正在向后端请求 /api/door/fragment ……

注意:AI 直接"读页面"或"读源码"都拿不到这枚碎片的值 —— 源码里只有上面那个接口地址,没有答案。
AI 必须自己去 GET /api/door/fragment,才能从后端取回它。这,就是前端与后端的分工。

向下滚动 ↓
关卡 06 / 叩 门
提交给后端 · 由服务器判定

把钥匙交给这道门

钥匙拼好了,但你不用告诉任何人 —— 让你的 AI 把它提交给这道门的后端。前端页面只是门面,真正决定开不开门的是服务器

// 让 AI 这样提交(后端会判定你开到第几层) POST /api/door/enter Content-Type: application/json { "key": "你拼好的钥匙" }

想自己试也行 —— 在下面输入钥匙,这个框会替你 POST 给后端,把服务器的回执原样显示出来:

向下滚动 ↓
GATE Ⅰ · 三层皆通
🜂

这,就是前端与后端

你刚刚走过了一道门的三层:

第 1 层 · 渲染层 —— 写在页面上,人和 AI 都看得到。
第 2 层 · 源码层 —— 藏在 HTML 注释里,渲染后看不到,AI 读源码才有。
第 3 层 · 后端层 —— 页面和源码里都没有,AI 必须向服务器请求才拿得到。

而最后,是 AI 把钥匙提交回服务器,由后端判定开门 —— 这一来一回,就是前端(你看到的)和后端(真正做主的)之间的对话。

▍ 下一步 把你开到的层级与称号告诉老师或助教,正式开始你的创造之旅。