🕸️ 第一章 Web技术基础知识
📄 一句话概括

教材列了五个词——浏览器、Web 服务器、Web 网站、Web 应用、Web 系统——它们不是五种东西,而是同一套系统里从外向内的五层:谁在看、谁在发、发的是什么、谁来算、总算起来叫什么。

📝 本节和前面几节的关系

上一篇说清了 Web 是什么——【用超链接连起来、用浏览器取回来】。这一篇接着回答一个更具体的问题:取回来这件事,两头分别是谁? 上一课 🖥️ 服务器工作原理 讲的是"服务器这一头怎么转",本篇要说的是服务器这一头在 Web 场景里长什么样,以及它和对面那一头(浏览器)之间是什么关系。

一、五个词,一层套一层

教材把五个词排在一起,是因为它们规模从小到大,且后一个是前一个的组成部分:

词 管什么 通俗说法
浏览器 装在用户电脑上,负责【要】和【画】 你手里的那一头
Web 服务器 监听端口,把东西发出去 对面那台机器的【收发室】
Web 网站 一堆页面,按域名分家 收发室里的一个信箱
Web 应用 会算、会查库,每次答案可能不同 信箱后面会办事的工作人员
Web 系统 网站加应用加数据库加运维的总称 连房子带电一起算

一句话把它串起来:浏览器向 Web 服务器要东西,要的如果是现成页面,那就是 Web 网站;如果服务器还要现算一遍,那就是 Web 应用;把这些连同数据库、备份、监控一起算进来,叫 Web 系统。

二、网站和应用,差在哪

这是五个词里最容易混的一对——它们都在服务器上,都用浏览器看,凭什么分两个名字?

区别在内容是不是事先做好的:

判别的土办法:同一个网址刷新两次,内容一模一样的是网站,会变的是应用。 当然现实里两者常混在一台服务器上——一个电商站,商品详情页可能是静态的,购物车一定是动态的。

三、一台机器,很多个网站:靠什么分家

教材提到一台 Web 服务器上可以挂很多个网站。问题来了:同一台机器只有一个 IP,凭什么区分"你要的是哪个网站"?

答案藏在请求里:浏览器每次请求都会带上一句"我要访问哪个域名"(这就是 HTTP 请求头里的 Host)。服务器收到后,拿这个域名去自己的小本子上查,找到对应的目录,把那个网站的内容发出去。

所以"一台机器挂 150 个网站"这件事,靠的不是 150 个 IP,而是150 条域名对目录的记录。这也是"虚拟主机"能卖那么便宜的原因——大家共用一台机器、共用一个 IP,只是各分一个目录。

四、动手 Demo:五个词各自的数量,和一台机器能扛多少

下面这个 Demo 把五个词摆在一台真实规模的服务器上数一遍,再算一算它的处理能力。

# 服务器每秒处理请求数 除以 一个页面需要的资源数 = 每秒可看的页面数
srv, per_page = 8000, 40
pv = srv / per_page
print("每秒可看页面 %.0f 次;分给 150 个网站,每家 %.1f 次" % (pv, pv / 150))

实跑输出:

--------------------------------------------------------------------
D2  Web 系统的架构:五个词,一层套一层
--------------------------------------------------------------------
  教材把它们排成一条从大到小的链:
  ----------------------------------------------------------------------------------------
  词                管什么                            一台服务器上有几个
  ----------------------------------------------------------------------------------------
  浏览器            装在用户电脑上,负责要、负责画    每人 1 个
  Web 服务器        监听端口,把东西发出去            1 个进程
  Web 网站          一堆页面,按域名分家              150 个
  Web 应用          会算、会查库、每次答案不同        常见 1~20 个
  Web 系统          网站加应用加数据库加运维的总称    通常 1 套

  一台机器扛得住多少【页面浏览】?先看三笔账:

  服务器处理能力            8000 请求/秒    中等配置
  一个页面要的资源数        40 个           HTML+CSS+JS+图
  合成每秒可看页面          200 页/秒       只是理论上限

  也就是说,一台服务器理论上每秒能撑约 200 次页面浏览;
  但它上面同时挂着 150 个网站,按域名各分一份,平均每家每秒钟约 1.3 次。
  架构讲的不是【机器多强】,是【一份资源怎么分给很多人】。

读这个输出:注意最后一行那个"1.3 次"。8000 请求每秒听起来很强,摊到 150 个网站头上,每家每秒只有一次多。这就是为什么"能扛多少"不能只看服务器参数——要看它同时在替多少人干活。这也是"架构"这个词的本意:不是把机器堆高,是把一份资源分好。

五、⚠️ 2026 现状

教材 2024 年出版,五个词的定义没变,但今天有几处新变化:

30 秒实验

随手打开一个你常去的网站,做两件事:

  1. 刷新两次:内容一模一样 → 偏网站;内容有变化(比如推荐、时间、数字)→ 偏应用。
  2. 数一数它有几个域名:看地址栏,再点开几个内部链接,看看是不是都还在同一个域名下面。

然后想一想:你公司那个对外网站,是网站还是应用? 如果想不清,就再刷新两次。

常见误区

  1. 错误:Web 服务器就是一台电脑。——纠正:"Web 服务器"这个词有两个意思,一个是指软件(如 Nginx、Apache,装在机器上监听端口),一个是指那台机器。教材讲架构时指的是软件那一层。搞清楚这点,才不会被"我们的 Web 服务器宕机了"这句话绕晕——它可能是软件挂了,也可能是机器挂了,处理方式完全不同。

  2. 错误:网站和应用是两回事,一个只能放内容,一个只能做功能。——纠正:它们是同一条光谱的两端,不是两个抽屉。 现实里的站点大多两头都沾:帮助中心是静态的,登录框是动态的。判断依据是内容是不是提前做好的,而不是"这个网站属于哪一类"。

  3. 错误:一台服务器只能放一个网站。——纠正:靠域名区分,一台机器能放很多个。 只要每来一个请求,服务器能从请求头里读出"要哪个域名",就能分家。所以买服务器时谈"能放几个站",问的是硬盘和带宽够不够,而不是"一台机器一个站"。

  4. 错误:架构就是把机器买大一点。——纠正:架构要解决的核心问题是【怎么分】。Demo 里那 200 页每秒是理论上限;真正上线时,一份资源同时要应付很多网站、很多用户,还要留出余量。把资源分好、留出余量,比单纯把参数堆高更要紧——这也正是后面讲负载均衡(1-4 之后的课程内容)的由来。

自测三问(点开对答案) 1. 一个公司在同一台服务器上放了官网(静态)和员工报销系统(动态),这算一个"Web 网站"还是两个? —— **按域名算,是两个网站;如果它们共用一套数据库和运维,合起来叫一个 Web 系统。** 关键在于**什么算一个**取决于你按哪一层说话:按域名分是两个网站,按"这套东西整体"算是一个系统。教材把五个词并排列出,正是要你学会**按需要挑合适的那个词**。 2. 为什么"一台服务器挂 150 个网站"不需要 150 个 IP? —— 因为**区分靠的是域名,不是地址**。浏览器每个请求都会带上"我要访问哪个域名",服务器读出来一查表就能找到目录。**IP 只负责把数据送到这台机器,域名才负责把它送到这台机器上的哪一个网站**——两层各管一段。 3. Demo 里算出"每家每秒 1.3 次",这个数说明什么? —— 说明**"能扛多少"是个相对数**。同一台服务器,如果只挂 1 个网站,它能给那个网站每秒 200 次;挂了 150 个,每家就只剩 1.3 次。**所以谈服务器能力时,必须同时说清楚它在替几个网站、多少用户干活**——孤立的一个"8000 请求每秒"没有意义。

相关笔记