,像乐高积木一样堆出整个界面。 但HTML只是骨架。1994年,CSS诞生,解决了“让网页好看”的问题。它把样式从内容中剥离——字体、颜色、间距、动画,全交给CSS控制。这就像把装修和盖房分开:结构工程师管承重墙,设计师管软装。没有CSS的网页,用伯纳斯-李的原话形容,“像一本没有插图的教科书,能读,但毫无吸引力”。
真正让Web“活”起来的,是JavaScript。1995年,布兰登·艾奇花10天设计出这门语言,初衷只是让浏览器能验证表单。谁也没想到,30年后它统治了整个Web世界。现在的JavaScript不仅能做动画、拖拽、实时聊天,还能跑在服务器上(Node.js)、开发桌面应用(Electron)、甚至控制机器人。我见过一个用纯JavaScript写的3D赛车游戏,运行在浏览器里,帧率稳定在60fps——放在2005年,这会被当作科幻片特效。
这三样——HTML、CSS、JavaScript——构成了Web技术的铁三角。但现代Web远不止于此。当你打开一个网页,背后至少涉及:DNS解析(把网址翻译成IP)、HTTP协议(规定数据怎么传)、CDN加速(让内容离你更近)、数据库查询(动态内容从哪来)、API接口(前后端怎么通信)。这串链条里任何一环出问题,页面就白屏——你大概遇到过那种“转圈圈转半天”的网站,多半是后端响应超时,或者前端资源加载失败。
Web技术最迷人的地方在于它的“低门槛”。我认识一个高中生,没上过编程课,靠看MDN文档和Stack Overflow,三个月做出了一个校园二手交易平台。他不需要安装任何IDE,一个文本编辑器加浏览器就够了。这种开放性,是原生App开发(iOS/Android)永远比不了的——后者你得先下载几GB的开发工具,还要交99美元年费才能上架。
但Web也有它的痛点。浏览器的兼容性噩梦至今没完全解决——同一个CSS属性,Chrome支持,Safari可能忽略,Firefox偶尔抽风。开发者为此发明了各种前缀和polyfill(补丁脚本),像修修补补的老房子。还有性能问题:一个现代网页平均要发送2MB数据,是2000年的200倍。我每次打开某些新闻网站,风扇都在狂转,CPU占用飙到80%——这绝不是Web技术该有的样子。
Web技术的发展史,就是一部“让不可能变成可能”的历史。从静态文本到动态交互,从页面跳转到单页应用,从服务器渲染到客户端渲染再到服务端组件(比如Next.js)。它没有终点,每个阶段都在解决前一个阶段制造的新问题。就像你永远在重构自己的旧代码——这既是Web的宿命,也是它的魅力。