Web知识篇

什么是网页背后的秘密

你看到的网页,只是冰山一角

当你打开一个网页,看到的是精美的图片、流畅的动画、丰富的内容。但在这背后,有一整套复杂的系统在协同工作。

💡 类比:网页就像一出舞台剧。观众(你)看到的是演员表演(页面展示),但幕后有导演(服务器)、剧本(代码)、道具组(数据库)、灯光师(CSS)在默默配合。

加载图表中...

从输入网址到看到页面

当你在浏览器地址栏输入 www.example.com 并按下回车,背后发生了这些事:

加载图表中...

详细步骤

步骤发生了什么耗时
① DNS 解析把域名翻译成 IP 地址~20ms
② 建立连接浏览器和服务器建立 TCP 连接~30ms
③ 发送请求浏览器发出 HTTP 请求~5ms
④ 服务器处理服务器找到资源并返回~50ms
⑤ 下载资源浏览器下载 HTML/CSS/JS/图片~100ms
⑥ 渲染页面浏览器解析并绘制页面~50ms

整个过程通常在 1秒以内 完成。

网页的三大组成部分

每个网页都由三种技术构成,各司其职:

加载图表中...

一个简单的例子

<!-- HTML:定义结构 -->
<button id="likeBtn" class="like-button">
  ❤️ 点赞 (0)
</button>
/* CSS:定义样式 */
.like-button {
  background-color: #F97316;
  color: white;
  padding: 8px 16px;
  border-radius: 20px;
  border: none;
  cursor: pointer;
}

.like-button:hover {
  background-color: #ea580c;
}
// JavaScript:定义行为
let count = 0;
document.getElementById("likeBtn").addEventListener("click", () => {
  count++;
  document.getElementById("likeBtn").textContent = `❤️ 点赞 (${count})`;
});

三者配合的结果:一个橙色圆角按钮,鼠标悬停会变深,点击后数字会增加。

前端与后端

网页开发分为两个阵营:

加载图表中...
对比前端后端
运行在哪用户的浏览器远程服务器
负责什么页面展示、用户交互数据处理、业务逻辑
语言HTML/CSS/JavaScriptNode.js/Python/Java/Go
用户能看到✅ 能看到源代码❌ 看不到

浏览器是怎么渲染页面的?

浏览器收到 HTML 后,会经过一系列步骤把它变成你看到的页面:

加载图表中...
步骤说明
解析 HTML构建 DOM 树(页面的结构)
解析 CSS构建 CSSOM 树(样式规则)
合并DOM + CSSOM = 渲染树
布局计算每个元素的位置和大小
绘制把最终结果画到屏幕上

现代网页的数据流

现代网页(特别是 Next.js 这样的框架)不只是静态页面,还涉及动态数据:

加载图表中...

客户端渲染 vs 服务端渲染

现代 Web 框架有两种主要的渲染方式:

加载图表中...
特性客户端渲染 (CSR)服务端渲染 (SSR)
首屏速度较慢(需等 JS 下载执行)较快(直接返回完整页面)
SEO不友好(搜索引擎看到空页面)友好(页面内容完整)
服务器压力小(渲染在浏览器完成)大(每次请求都要渲染)
代表框架React (create-react-app)Next.js、Nuxt.js

Next.js 同时支持两种方式,并且可以按页面选择最合适的渲染策略。

查看网页的"源代码"

你可以在任何网页上右键 → 查看页面源代码,看到浏览器收到的原始 HTML:

<!DOCTYPE html>
<html>
<head>
  <title>示例网站</title>
  <link rel="stylesheet" href="/style.css">
</head>
<body>
  <h1>欢迎来到我的网站</h1>
  <p>这是一个段落</p>
  <script src="/app.js"></script>
</body>
</html>

你也可以按 F12 打开开发者工具,在 Elements 面板中实时查看和修改页面结构。

🎯 AI编程小贴士:想了解任何网页是怎么做的?按 F12 打开开发者工具,把你看到的 HTML 结构或 CSS 样式发给 AI,它能帮你分析实现方式,甚至帮你复刻类似的效果。

小结

  • 从输入网址到看到页面,经历了 DNS解析 → 建立连接 → 请求资源 → 渲染页面 的过程
  • 网页由 HTML(结构)、CSS(样式)、JavaScript(行为) 三部分组成
  • 前端运行在浏览器,后端运行在服务器,通过 API 交换数据
  • 浏览器通过构建 DOM树CSSOM树 来渲染页面
  • Next.js 支持服务端渲染,首屏更快、SEO更好