教材列了五个词——浏览器、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 年出版,五个词的定义没变,但今天有几处新变化:
- "一台机器挂 150 个网站"已经很保守。加了缓存与 CDN 之后,真正的瓶颈往往不在服务器,在带宽和数据库。同一台机器今天能轻松挂更多低流量网站。
- "网站"和"应用"的界线越来越模糊。今天多数网站都用 JavaScript 在浏览器里现算一部分(这叫前端渲染),所以"刷新两次内容是否一样"这个土办法有时会失灵——它可能一样,但其实是应用。
- "Web 服务器"这个词被拆开了。今天常见的是反向代理挡在最前面、后端应用藏在后面:浏览器看到的那个"服务器",其实只是接客的那一层。这一点在 1-5 讲 Web 服务器外部结构时会再讲一次。
30 秒实验
随手打开一个你常去的网站,做两件事:
- 刷新两次:内容一模一样 → 偏网站;内容有变化(比如推荐、时间、数字)→ 偏应用。
- 数一数它有几个域名:看地址栏,再点开几个内部链接,看看是不是都还在同一个域名下面。
然后想一想:你公司那个对外网站,是网站还是应用? 如果想不清,就再刷新两次。
常见误区
-
错误:Web 服务器就是一台电脑。——纠正:"Web 服务器"这个词有两个意思,一个是指软件(如 Nginx、Apache,装在机器上监听端口),一个是指那台机器。教材讲架构时指的是软件那一层。搞清楚这点,才不会被"我们的 Web 服务器宕机了"这句话绕晕——它可能是软件挂了,也可能是机器挂了,处理方式完全不同。
-
错误:网站和应用是两回事,一个只能放内容,一个只能做功能。——纠正:它们是同一条光谱的两端,不是两个抽屉。 现实里的站点大多两头都沾:帮助中心是静态的,登录框是动态的。判断依据是内容是不是提前做好的,而不是"这个网站属于哪一类"。
-
错误:一台服务器只能放一个网站。——纠正:靠域名区分,一台机器能放很多个。 只要每来一个请求,服务器能从请求头里读出"要哪个域名",就能分家。所以买服务器时谈"能放几个站",问的是硬盘和带宽够不够,而不是"一台机器一个站"。
-
错误:架构就是把机器买大一点。——纠正:架构要解决的核心问题是【怎么分】。Demo 里那 200 页每秒是理论上限;真正上线时,一份资源同时要应付很多网站、很多用户,还要留出余量。把资源分好、留出余量,比单纯把参数堆高更要紧——这也正是后面讲负载均衡(1-4 之后的课程内容)的由来。
自测三问(点开对答案)
1. 一个公司在同一台服务器上放了官网(静态)和员工报销系统(动态),这算一个"Web 网站"还是两个? —— **按域名算,是两个网站;如果它们共用一套数据库和运维,合起来叫一个 Web 系统。** 关键在于**什么算一个**取决于你按哪一层说话:按域名分是两个网站,按"这套东西整体"算是一个系统。教材把五个词并排列出,正是要你学会**按需要挑合适的那个词**。 2. 为什么"一台服务器挂 150 个网站"不需要 150 个 IP? —— 因为**区分靠的是域名,不是地址**。浏览器每个请求都会带上"我要访问哪个域名",服务器读出来一查表就能找到目录。**IP 只负责把数据送到这台机器,域名才负责把它送到这台机器上的哪一个网站**——两层各管一段。 3. Demo 里算出"每家每秒 1.3 次",这个数说明什么? —— 说明**"能扛多少"是个相对数**。同一台服务器,如果只挂 1 个网站,它能给那个网站每秒 200 次;挂了 150 个,每家就只剩 1.3 次。**所以谈服务器能力时,必须同时说清楚它在替几个网站、多少用户干活**——孤立的一个"8000 请求每秒"没有意义。- ☐ 下一节(1-3 浏览Web页面:URL、专用应用程序)
相关笔记
- 什么是Web —— 上一篇:Web 到底是什么
- 浏览Web页面 —— 下一篇:换个方式——不通过浏览器也能连
- Web服务器的外观与内部结构 —— 那台"收发室"里到底装了什么
- 共享三件套(C-S架构、文件服务器、打印服务器) —— 服务器课里的"客户端与服务器"
- 🕸️ Web技术原理 · 索引 —— 全课路线图