Appearance
WWW 万维网
2026 大纲 六(五)1 WWW 的概念与组成结构。同一节的第 2 条子项「HTTP 协议」由 HTTP 协议 承载,报文格式、状态码、持久连接与 RTT 计算都在那一篇。
速查
| 万维网是什么 | 一个大规模的、联机式的信息储藏所,而不是什么特殊的计算机网络。它是内容的集合,不是线路的集合 |
| 🔴 WWW ≠ Internet | Internet 是网络基础设施(TCP/IP),WWW 是建在其上的一种应用。Internet 没有 WWW 照样跑(邮件、FTP、DNS),WWW 离开 Internet 一步也走不了 |
| 🔴 万维网的链接不保证一致 | 非分布式超媒体系统能做链接一致性检查;万维网的文档独立管理,增删改名都不需要(也不可能)通知成千上万个节点。死链是分布式自治的必然代价,不是实现疏忽 |
| 被四个问题逼出来的四个答案 | 怎样标志文档 → URL;用什么协议实现链接 → HTTP;怎样让不同风格的文档都能显示、并让用户看见链接 → HTML;怎样方便地找到信息 → 搜索工具。第四问常被漏,它说明"三要素"只是近似说法 |
| URL = 位置 + 访问方法 | 格式 协议://主机:端口/路径。协议后的 :// 必须写上 |
| 🔴 只有协议和主机名不区分大小写 | 路径中的字符有时要区分——路径最终交给服务器的文件系统去查,区不区分取决于那台服务器的操作系统,不是协议规定 |
| 🔴 端口省略 ≠ 没有端口 | 省略表示取协议默认端口(HTTP 80、HTTPS 443);不用默认端口时必须写明 |
🔴 www 开头不是硬性规定 | 只是习惯;主机名用点分十进制 IP 地址代替也可以 |
| 省掉路径即指向主页 | 主页有三种情况:服务器最高级别的页面/某组织定制的页面或目录/某人描述本人情况的页面 |
| 🔴 超文本与超媒体的差别在内容,不在链接 | 超文本仅含文本 + 链接;超媒体加入图形、图像、声音、动画、视频。链接机制完全一样。超文本是万维网的基础 |
| 🔴 静态/动态的判据 | "请求到达之前这份 HTML 是否已经存在",不是"页面上有没有动画"。动态网页难缓存,因为它破坏了"同一 URL → 同一份内容"的假设 |
| 🔴 WWW ⊃ HTTP | 应用层协议只是网络应用的一部分。浏览器如何显示页面、服务器用多线程还是多进程,都不是 HTTP 定义的内容 |
| URL 是 URI 的一种 | URI 只负责标识,URL 还指明如何定位。所有 URL 都是 URI,反之不然 |
一、分布式服务,与它的结构性代价
万维网提供的是分布式服务:站点可以相隔数千公里,每台主机上的文档独立进行管理。
主机 A 上的文档 X 指向主机 B 上的文档 Y,B 的管理员某天删掉了 Y,A 的那条链接就失效了——而 B 并没有责任必须通知 A。愿意付这个代价,换来的是任何人都能不经审批地发布内容并链接到任何地方,这正是万维网能长成今天这个规模的前提。
二、三大标准怎样协作
万维网以客户服务器方式工作:浏览器就是用户主机上的万维网客户程序("浏览器"与"万维网客户"是同义词),文档所驻留的主机运行服务器程序,在客户程序主窗口上显示出的万维网文档称为页面(page)。
三、URL 统一资源定位符
URL 表示的两件事各占一半:位置(在哪)与方法(用什么协议去取)——这解释了为什么协议名必须写在 URL 里,同一份资源可能有多种取法。这里的"资源"指互联网上可被访问的任何对象(文件目录、文件、文档、图像、声音等),而互联网上的所有资源都有一个唯一确定的 URL。
https://www.codebrick.tech:443/cn-blog/posts/application/www.html
└─┬─┘ └────────┬─────────┘└┬┘└──────────────┬──────────────────┘
协议 主机 端口 路径URL 也不止用于万维网:通过 ftp:// 等协议名还能使用其他互联网应用,而用户在使用这些应用时只用一个程序——浏览器。把原本互不相干的多种应用收进同一个入口,是万维网影响力的一个来源。
四、万维网的工作流程
以打开 https://www.example.com 为例:① 浏览器解析 URL,提取协议、主机、端口(默认 443)、路径;② DNS 解析,把主机名转成 IP(见 DNS 域名系统);③ 建立 TCP 连接(HTTPS 还要 TLS 握手);④ 发送 HTTP 请求;⑤ 服务器返回 HTML 文档与状态码;⑥ 解析 HTML,发现其中引用的图片、CSS、JS 等资源,对每个资源重复第 ②~⑤ 步;⑦ 组合渲染。
第 ⑥ 步是唯一"会分叉"的一步,也是万维网性能问题的总来源:一次完整的网页加载通常涉及几十甚至上百个 HTTP 请求。HTTP/1.1 的持久连接、HTTP/2 的多路复用全都是针对这一步的优化——具体省几个 RTT 见 HTTP 协议。
五、静态网页与动态网页
| 特性 | 静态网页 | 动态网页 |
|---|---|---|
| 文件形式 | 服务器上预先存好的 HTML 文件 | 由服务器程序根据请求动态生成 |
| 内容 | 固定不变 | 随用户、时间、参数变化 |
| 服务端开销 | 小(读文件即可) | 大(需要执行程序) |
| 可缓存性 | 高,代理服务器容易缓存 | 低,同一 URL 对不同用户可能返回不同内容 |
| 例子 | 文档、博客文章 | 搜索结果、用户主页、购物车 |
代理服务器的缓存收益主要来自静态资源,原因就在最后两行。
本节小结
- 万维网是大规模、联机式的信息储藏所,不是一种计算机网络;它建立在 Internet 之上,是应用而非基础设施。它提供分布式服务,代价是链接无法保证一致——文档独立管理、增删改名不通知别人,死链是设计选择的必然结果。
- 三大标准是被四个问题逼出来的:标志文档 → URL、实现链接的协议 → HTTP、统一描述与显示 → HTML、方便找到信息 → 搜索工具。URL = 位置 + 访问方法,
://必写、端口可省(省则取默认)、路径可省(省则指向主页);只有协议和主机名不区分大小写。 - 超文本与超媒体的差别在文档内容而非链接机制;加载一个页面要对每个引用资源重复"DNS → TCP → 请求 → 响应",这是所有 HTTP 连接优化的起点。应用层协议只是网络应用的一部分,浏览器怎么渲染、服务器用多线程还是多进程都不由 HTTP 定义。
教材出处
- 谢希仁《计算机网络》(第 8 版)印刷 p272,6.4.1 节开头:「万维网 WWW(World Wide Web)是一个大规模的、联机式的信息储藏所,英文简称为 Web,而不是什么特殊的计算机网络。」——本篇"不是一种网络"的直接出处。
- 印刷 p273,6.4.1 节:分布式服务的说明与超文本/超媒体的定义——「万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。所谓超文本是指包含指向其他文档的链接的文本(text)……超文本是万维网的基础」「超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画以及视频图像等」。
- 印刷 p274,6.4.1 节:链接一致性那一段是本篇第一节的依据——「在非分布式系统中,各种信息都驻留在单个计算机的磁盘中。由于各种文档都可从本地获得,因此这些文档之间的链接可进行一致性检查。所以,一个非分布式超媒体系统能够保证所有的链接都是有效的和一致的。万维网把大量信息分布在整个互联网上。每台主机上的文档都独立进行管理。对这些文档的增加、修改、删除或重新命名都不需要(实际上也不可能)通知到互联网上成千上万的节点。这样,万维网文档之间的链接就经常会不一致」。同页给出万维网必须解决的四个问题及其答案(URL / HTTP / HTML / 搜索工具),以及「万维网以客户服务器方式工作……在一个客户程序主窗口上显示出的万维网文档称为页面(page)」。6.4.2 节开头:「统一资源定位符 URL 是用来表示从互联网上得到的资源位置和访问这些资源的方法……显然,互联网上的所有资源,都有一个唯一确定的 URL。」
- 印刷 p275,6.4.2 节:URL 各部分的规则——「在协议后面的『😕/』是规定的格式,必须写上」「主机名是万维网文档所存放的主机的域名,通常以 www 开头,但这并不是硬性规定。主机名用点分十进制的 IP 地址代替也是可以的」「这是因为这个端口号通常就是协议的默认端口号(例如,协议 HTTP 的默认端口号为 80),因此就可以省略。但如不使用默认端口号,那么就必须写明现在所使用的端口号」;以及主页的三种情况。
- 印刷 p276:大小写规则原文——「URL 的『协议』和『主机名』部分,字母不区分大小写。但『路径』中的字符有时要区分大小写。」同页:「用户使用 URL 并非仅仅能够访问万维网的页面,而且还能够通过 URL 使用其他的互联网应用程序,如 FTP 或 USENET 新闻组等。更重要的是,用户在使用这些应用程序时,只使用一个程序,即浏览器。」
- 印刷 p260,第 6 章引言:本篇"WWW ⊃ HTTP"那条判据的出处——「应用层协议与网络应用并不是同一个概念。应用层协议只是网络应用的一部分。例如,万维网应用是一种基于客户/服务器体系结构的网络应用。万维网应用包含很多部件,有万维网浏览器、万维网服务器、万维网文档的格式标准,以及一个应用层协议。万维网的应用层协议是 HTTP……而万维网浏览器如何显示一个万维网页面,万维网服务器是用多线程还是用多进程来实现,则都不是 HTTP 所定义的内容。」
说明:本篇是纯概念条目,没有可计算量——RTT 与连接数的计算全部放在 HTTP 协议。
相关知识
网络应用模型|DNS 域名系统|HTTP 协议|FTP 与 DHCP|数据包的网络之旅