2 分钟

蒂姆·伯纳斯-李的万维网:URL、HTTP、HTML 及其重要性

了解蒂姆·伯纳斯-李如何将 URL、HTTP 和 HTML 结合成万维网——以及为什么这些简单理念仍驱动现代应用与 API。

蒂姆·伯纳斯-李的万维网:URL、HTTP、HTML 及其重要性

什么是万维网(以及什么不是)

万维网(通常简称“Web”)是一种使用链接发布和访问信息的方式。它让你可以从一个页面点击到另一个页面、从搜索结果打开产品页,或分享一个几乎在任何电脑或手机上都可用的链接。

万维网由三个简单的概念构成

从核心上讲,Web 由一个实用的三件套驱动:

  • URL(统一资源定位符):Web 上某个东西的地址(页面、图片、文件、端点)。
  • HTTP(超文本传输协议):传递对话——浏览器如何请求某物、服务器如何响应。
  • HTML(超文本标记语言):页面格式——一种描述内容并且关键地包含指向其他 URL 的链接的结构化方式。

你不需要成为程序员就能感受它们的影响:每次你粘贴链接、加载页面或点击带你到其他地方的按钮时,都是在依赖 URL + HTTP + HTML。

Web 与互联网(不是同一件事)

人们常把“Web”和“Internet”混用,但它们不同:

  • 互联网 是底层基础设施:一个全球互联的计算机网络。\n- 万维网 是运行在其之上的一项服务:使用 URL 和 HTTP 访问的、通常以 HTML 展示的资源链接集合。

电子邮件、在线游戏和许多聊天应用在严格意义上并不是“Web”,但它们使用互联网。

为什么这仍然重要

即使是现代体验——单页应用、移动应用和 API——仍然在很大程度上依赖这些基础。它们可能会隐藏细节,但仍使用 URL 来标识资源HTTP 来交换请求和响应,并且通常使用 HTML 来引导浏览器显示内容

蒂姆·伯纳斯-李试图解决的问题

蒂姆·伯纳斯-李并不是想发明“互联网”。1989 年在 CERN 工作时,他关注的是一个实际的痛点:重要信息存在但散落在不兼容的系统中,以不同格式存储且难以再次找到。

研究人员、团队和各部门使用不同的计算机和软件。即使两组拥有“相同”类型的文档,也可能存放在不同位置、命名不同,或需要特定程序才能打开。共享常常意味着文件被到处传来传去,复制副本,并且难以追踪哪个版本是最新的。

一个简单目标:让信息可链接且易分享

伯纳斯-李的核心想法是让任何人在他们自己的计算机上发表文档,然后让其他人通过一致的方法访问它——无需了解机器类型、操作系统或内部目录结构。

这需要几样东西协同工作:

  • 一种一致命名与定位信息的方式(地址)。
  • 一种基本的方法来跨网络请求并接收该信息。
  • 一种轻量的文档格式,可以包含指向其他文档的链接。

简单性与互操作性优先

真正的突破不是某个单一功能,而是决定保持系统小而通用。如果规则足够简单,不同的计算机和组织可以实现这些规则并彼此通信。

这也是为什么开放标准从一开始就很重要:Web 需要共享的、公开的规则,使许多独立系统能够参与。这种对通用标准的重视——而不是某个厂商的工具链——使得 Web 能迅速传播,新浏览器和服务器可以与已有内容配合工作。

URL:Web 的地址系统

如果你曾试图在杂乱的办公盘里“分享文件”,就会看到网络的核心问题:一致命名东西很难。不同计算机把信息储存在不同位置,文件夹会被重组,两个文档可能拥有相同的文件名。没有共享命名系统,你无法可靠地说“去拿那边的那个东西”。

URL 为万维网解决了这个问题,提供了一个通用、可复制粘贴的资源地址。

一个可读的 URL 示例

https://www.example.com:443/products/shoes?color=black\u0026size=42#reviews

各部分的含义(通俗解释):

  • https方案:使用哪套规则来获取它(加密的 HTTP)。
  • www.example.com主机:要与哪台服务器通信。
  • :443端口(通常可以省略,所以通常隐藏)。
  • /products/shoes路径:服务器上的哪个资源。
  • ?color=black\u0026size=42查询:额外参数(常用于过滤或跟踪)。
  • #reviews片段:页面内部的位置(由浏览器处理)。

URL 不只是指向“页面”

URL 可以标识服务器可以返回的几乎任何东西:HTML 页面、图片、PDF、可下载文件,甚至是应用使用的 API 端点。

例如:

  • /images/logo.png(一张图片)
  • /docs/terms.pdf(一个文档)
  • /api/orders/123(应用的数据)

URL、URI 与“链接”(保持简单)

人们常把这些词互换使用:

  • URL:你用来获取某物的“地址”。
  • URI:更广的术语,包含 URL。\n- 链接:你点击的东西——通常是含有 URL 的文本或按钮。

实际应用中,把 “URL = 地址” 视作足够覆盖 95% 的场景即可。

HTTP:Web 的请求-响应语言

HTTP 是 Web 的基本对话风格。核心就是:你的浏览器请求某样东西,服务器回复它所拥有的内容或解释为何无法提供。

核心思想:浏览器请求,服务器回复

当你输入一个 URL 或点击链接时,浏览器向服务器发送一个 HTTP 请求。请求就像一张便条,写着:“我要这个特定的资源。”

然后服务器发送回一个 HTTP 响应。响应是包含结果的包:你请求的内容(如页面),或说明发生了其他情况的消息。

日常中的请求(GET 与 POST)

HTTP 请求包含一个方法,表示你要执行的动作类型。

  • GET:“请给我这个。”例子:加载页面或下载文件。
  • POST:“请接收这些数据。”例子:提交注册表单或发表评论。

GET 通常不会改变服务器上的任何东西;它主要用于读取。POST 常用于发送需要处理的信息。

状态码:请求结果的总结

每个响应都包含一个状态码——把它看作投递结果的标签。

  • 200:成功。这里是你请求的内容。\n- 404:未找到。该地址没有这个资源。\n- 301:永久移动。资源有了新地址;请更新书签。

头部与内容类型:包裹上的标签

请求与响应还包含 头部,类似标签:"这是谁发的"、"我能接受什么"、或"该如何处理这个内容"。

最有用的标签之一是 Content-Type,例如 text/html(网页)或 application/json(数据)。它告诉浏览器包裹里是什么,以便正确显示。

HTML:用于页面与链接的简单格式

HTML(超文本标记语言)是描述网页结构的格式——内容是什么以及如何组织的方式。把它想象成带标签的文档:“这是标题”、“这是段落”、“这是链接”、“这是表单字段”。

标签:围绕内容的标记

HTML 用标签来标注内容。标签通常有开始和结束版本,包裹它所描述的内容。

标题和段落赋予页面形状。标题告诉人和浏览器“这是一个重要的章节标题”。段落告诉它们“这是正文文本”。

图片和链接也用 HTML 描述。图片标签指向图像文件(资源),链接标签指向另一个 URL。

超文本:链接为何改变了一切

HTML 中的“HT”(超文本)是让 Web 与早期系统不同的关键想法。你不再只能通过菜单、文件夹或特殊命令导航,而可以直接点击嵌入文本中的链接,从一个文档跳到另一个文档。

这个变化看似简单,但非常强大:知识变得互联。页面可以即时引用来源、相关主题、定义和后续步骤——不必每次都回到中央索引。

一个极小示例:一个普通的链接

\u003ca href=\"/blog/how-http-works\"\u003eRead more about HTTP\u003c/a\u003e

通俗来说:“显示文字 Read more about HTTP,当点击时带读者到 /blog/how-http-works 页面。”

表单:从阅读到交互

HTML 不只是用于发布文档。它还可以描述输入元素,如文本框、复选框和按钮。这些元素允许页面收集信息(比如登录、搜索或结账)并将其发送到服务器。

HTML vs. CSS vs. JavaScript

容易混淆,但三者职责不同:

  • HTML 定义 结构和语义(标题、段落、链接、表单)。
  • CSS 控制 样式(颜色、间距、字体、布局)。
  • JavaScript 添加 行为(验证、动态更新、交互功能)。

即便网页应用变得更复杂,HTML 仍然是起点:它是可读且共享的方式,描述页面包含什么——以及接下来可以通往哪里。

一个网页如何加载:一步一步的通俗流程

分享真实 URL
准备好分享时,将项目部署到自定义域名。

当你访问一个网站时,浏览器基本上在做两件事:找到要通信的计算机,并请求正确的文件

1) 你输入一个 URL

一个 URL(如 https://example.com/page)是页面的地址。它包含主机名(example.com)及通常的路径(/page)。

2) 浏览器找到站点(DNS 查询)

互联网上的计算机使用数字地址称为 IP 地址 进行通信。DNS(域名系统)就像电话簿,将 example.com 映射为一个 IP 地址。

此查询通常很快——有时会跳过,因为答案已被近期访问缓存。

3) 浏览器连接到那台计算机

现在浏览器打开与该 IP 地址服务器的连接。如果 URL 以 https:// 开头,浏览器还会建立加密连接,以防他人轻易读取传输内容。

4) 浏览器用 HTTP 发起请求

HTTP 是 Web 的“请求—响应”语言。浏览器发送类似“请给我 /page”的 HTTP 请求。

服务器回复一个 HTTP 响应,包含状态(如“OK”或“Not Found”)和内容。

5) 浏览器接收 HTML 并渲染页面

内容通常是 HTML(超文本标记语言)。HTML 描述页面结构——标题、段落、链接等。

浏览器在读取 HTML 时,可能会发现还需要其他文件(CSS、JavaScript、图片、字体)。它会为每个文件重复同样的 HTTP 请求/响应过程。

6) 缓存:“保存一份副本以加速加载”

为了提速,浏览器会保留一个 缓存——已下载文件的保存副本。如果内容未改变,浏览器可以重用该副本而不是重新下载。

快速清单(流程):

  • 输入 URL
  • DNS 找到 IP 地址
  • 浏览器连接(若为 HTTPS 则加密)
  • 对路径/资源发起 HTTP 请求
  • 服务器发送 HTML(以及其他文件)
  • 浏览器渲染;缓存帮助后续加载

服务器、浏览器与资源:基本角色

当人们说“Web”时,通常指的是平滑的体验:点一下链接页面就出现。在表面之下,是服务器、浏览器和资源三者之间的简单关系。

服务器:资源所在之处

服务器 是一台(或一组)连接到互联网的计算机,它在 URL 下托管资源。如果 URL 是地址,服务器就是接待该地址访问者并决定返回什么的地方。

服务器发送的“东西”可能是网页、文件或数据。关键是服务器被配置为回应针对特定 URL 的请求。

浏览器:请求并展示内容的地方

浏览器 是一个程序(如 Chrome、Safari 或 Firefox),它 获取服务器上的资源 并以人类友好的方式 显示 它们。

当你输入 URL 或点击链接时,浏览器会:

  • 向服务器请求该 URL 下的资源
  • 接收响应
  • 渲染(HTML)或保存/使用(图片、下载等)

资源:被传输的内容

资源 是 Web 能识别并在 URL 下交付的任何东西。常见示例包括:

  • 文档(HTML 页面)
  • 图片(PNG、JPEG、SVG)
  • 脚本(JavaScript 文件)
  • 样式(CSS 文件)
  • API(返回数据的端点,通常是 JSON)

这个模型不限于浏览器。移动应用也可以请求 URL——通常是 Web API 端点——并在应用自己的界面中显示数据。角色保持不变:应用作为“客户端”,服务器作为“主机”,API 响应作为资源。

从文档到交互:表单与数据

边构建边省积分
通过撰写关于 Koder.ai 的内容或邀请他人获取积分。

早期网页大多只展示信息。表单让 Web 能收集信息——把页面变成双向对话。

表单实际做了什么

HTML 表单是一组结构化字段(如文本框、复选框和按钮)以及两个关键指令:

  • 将数据发送到哪里action URL)
  • 如何发送method,通常为 GET 或 POST)

当你点击“提交”时,浏览器把你输入的内容打包并用 HTTP 发送到该 URL。这就是“带字段的文档”与“处理输入的应用”之间的桥梁。

GET 与 POST(实用区别)

总体上:

  • GET 把表单数据附加到 URL 作为查询字符串(常用于搜索和过滤)。结果易于被书签或分享。\n- POST 把表单数据放在 HTTP 请求的主体中(常用于创建或修改,如注册帐号或下单)。

所以搜索可能是 /search?q=shoes(GET),而结账提交可能把订单详情 POST 到 /checkout

服务器如何“处理”表单

在服务器端,一个程序接收 HTTP 请求,读取提交的值,然后决定下一步:

  • 验证输入(必填项、有效电子邮件格式)
  • 检查凭证(登录)
  • 创建记录(注册、工单)
  • 扣款并确认订单(结账)

服务器随后会响应——常见为新的 HTML 页面(“感谢!”)、错误信息或跳转到另一个 URL。

简短的安全提示:HTTPS 为什么重要

如果表单包含敏感信息——密码、地址、支付信息——HTTPS 是必须的。它能防止网络上的其他人读取或篡改浏览器与站点之间发送的内容。没有它,即便是简单的登录表单也可能泄露用户信息。

为什么现代应用仍依赖 URL、HTTP 和 HTML

现代的“应用”不仅仅是网页。大多数是 网页 + 代码:一个 HTML 页面加载 JavaScript 和 CSS,然后用这些代码更新界面而无需频繁刷新整个页面。

即便一个应用看起来像原生程序(无限滚动、实时更新、拖放),它仍然依赖于蒂姆·伯纳斯-李引入的那三个基石。

URL 仍然用于标识一切

URL 不只是用于“页面”。它是任何资源的地址:商品、用户资料、搜索查询、照片或“发送消息”端点。好的应用使用 URL 使内容可分享、可书签、可链接——这是 Web 的核心行为。

HTTP 仍在传递消息

在幕后,应用发送 HTTP 请求并接收 HTTP 响应,就像传统网站一样。无论你是在获取 HTML 页面还是加载部分屏幕的数据,规则相同:

  • 方法如 GET(读取)、POST(提交)、PUT/PATCH(更新)、DELETE(删除)
  • 状态码如 200404500
  • 头部用于缓存、内容类型和认证等

API 是“用于数据的网页”

大多数现代应用与 API 交互:通过 HTTP 返回数据(通常是 JSON)的 URL。

例如:

  • 地图功能向地图 API 请求附近地点
  • 结账流程将支付详情发送到支付 API
  • 聊天加载消息并将新消息发布到消息 API
  • 分析向分析端点发送事件

HTML 仍然重要,因为它常是起点(有时也是退路)。更广而言,Web 是一个集成平台:如果系统能在 URL 和 HTTP 上达成一致,它们就能互联——无论谁构建它们。

一种实用的方式是动手做点小项目——比如构建一个 React 前端,与 JSON API 通信,并为关键屏幕提供可分享的 URL。像 Koder.ai 这样的工具也遵循同样的模型:你在聊天里描述应用,它生成标准的 Web 技术栈(前端 React、后端 Go + PostgreSQL),因此你仍在使用真实的 URL、HTTP 端点和浏览器交付的 HTML——只是手动配置少了很多。

标准与兼容性:Web 如何扩展

Web 能在全球范围内运作,是因为它建立在共享标准之上——公开的“交通规则”,让不同系统可靠地通信。一个厂商的浏览器可以请求另一个厂商运行的服务器上的页面,托管在任何地方、用任何编程语言编写,因为它们在 URL、HTTP 和 HTML 等基础上达成一致。

为什么标准很重要

没有标准,每个站点都需要一个自定义的查看应用,每个网络都有自己的请求传输方式。标准化解决了几个简单但关键的问题:

  • 我们如何命名一个资源?(URL)
  • 客户端如何请求并接收它?(HTTP)
  • 结果如何结构化以便被显示和链接?(HTML)

当这些规则一致时,Web 变得“混搭”:任何合规的浏览器 + 任意合规的服务器 = 它能工作。

标准在演进——但不破坏 Web

令人印象深刻的是,标准可以改进而不丢失基本特征。HTTP 从早期版本发展到 HTTP/1.1,再到 HTTP/2 与 HTTP/3,带来更好的性能和效率。然而核心思想保持不变:客户端请求 URL,服务器以状态码、头部和主体响应。

HTML 也在成长——从简单文档到更丰富的语义与嵌入媒体——同时保留页面和超链接的基本概念。

向后兼容是一种特性,而非巧合

Web 能长久存在,很大程度上源于对向后兼容的偏好。新浏览器仍尝试渲染旧页面;新服务器仍理解旧的 HTTP 请求。这意味着内容和链接可以存在多年——往往是几十年。

以长远设计

如果你希望网站或应用经久耐用,依赖基于标准的设计:为可分享状态使用真实 URL,遵循 HTTP 的缓存与状态码惯例,并在添加额外层之前先编写有效的 HTML。标准并不限制你——它们让你的工作更具可移植性、可靠性和面向未来。

常见误解(以及快速纠正)

添加移动客户端
创建通过标准 HTTP 与你的 Web API 通信的 Flutter 移动应用。

即便你每天使用 Web,有些术语也经常被混淆,可能悄悄破坏故障排查、规划或简单对话。这里列出常见的混淆及最快的纠正方法。

“互联网” vs “万维网”

误解: 互联网和万维网是同一件事。

快速纠正: 互联网 是全球网络(电缆、路由器、连接)。万维网 是运行在其之上的服务,由 URLHTTPHTML 构成。

URL 与域名(以及为什么额外部分很重要)

误解: “我的 URL 是 example.com。”

快速纠正: example.com 是一个 域名。一个 URL 可以包含路径和查询等更多细节,例如:

  • https://example.com/pricing(特定路由)
  • https://example.com/search?q=shoes(路由加查询)

这些额外部分会改变服务器返回的内容。

HTML vs HTTP

误解: HTML 与 HTTP 可以互换。

快速纠正: HTTP 是“传递对话”(请求与响应)。HTML 是可以被传递的“包裹”之一——通常用于描述页面及其链接。HTTP 也可以传输 JSON 数据、图片、PDF 或视频。

状态码与重定向

误解: 任何错误都意味着“网站无法访问”,重定向总是有问题。

快速纠正: 状态码是信号:

  • 404:服务器可达,但该资源未找到
  • 500:服务器处理请求时内部出错
  • 301/302:正在重定向(页面移动后常见且正常)

“URL 总是指向一个页面”

误解: 每个 URL 都应打开一个可读页面。

快速纠正: URL 可以指向数据/api/orders)、文件/report.pdf)或表单提交的动作端点

HTTPS = 值得信赖?

误解: 有 HTTPS 就说明网站安全可靠。

快速纠正: HTTPS 加密连接并帮助确认你连接的是正确域名——保护登录和表单等敏感信息在传输中不被窃听或篡改。但它并不保证网站本身诚信或值得完全信赖。你仍需评估来源、内容与上下文。

关键要点与深入阅读路径

蒂姆·伯纳斯-李的核心想法出人意料地小:用共享的命名方案、共享的请求方式和共享的展示格式把文档(后来扩展为应用)连接起来。

三个构建块(一分钟速览)

URL 是地址。它告诉你你想要什么它在哪里(以及通常如何访问)。

HTTP 是对话。它是浏览器与服务器用来请求与回复的规则集合(状态码、头部、缓存等)。

HTML 是页面格式。浏览器可读以渲染内容——并且,关键地,它在页面内部建立链接把资源相连。

一个可复用的思维模型

把 Web 想成一个简单的三步循环:

  1. 命名(URL)— “到这个地址去。”
  2. 请求(HTTP)— “把这个资源给我。”
  3. 展示并链接下去(HTML)— “这是它的意义,以及下一步去向。”

掌握这个循环后,现代细节(Cookie、API、单页应用、CDN)就更容易理解:它们通常是对命名、请求或渲染的细化。

想继续深入?

  • HTTP 通俗指南:/blog/how-http-works
  • URL 解密:/blog/what-is-a-url
  • HTML 基础与链接:/blog/html-basics

理解这些基础能迅速带来价值:你会更擅长评估网络工具(“这是否依赖 URL 与标准的 HTTP?”)、与开发者交流,并排查日常问题,如断链、缓存意外或 “404 与 500” 错误。

常见问题

万维网和互联网有什么区别?

互联网是连接计算机的全球网络(路由器、电缆、IP 路由)。万维网是在其上运行的一种服务:由URL标识的资源,通过HTTP传输,并通常以HTML展示。

许多事物使用互联网但并非“万维网”,例如电子邮件、一些多人游戏以及许多聊天系统。

什么是 URL,各部分是什么意思?

URL 想象成资源的精确地址。它可以指向 HTML 页面、图片、PDF 或 API 端点。

典型的 URL 包含:

  • schemehttps)— 如何访问它
  • hostexample.com)— 哪台服务器
  • path/products/shoes)— 哪个资源
  • query?color=black)— 附加参数
  • fragment#reviews)— 页面内的位置(由浏览器处理)
“example.com” 是 URL 还是域名——为什么这很重要?

域名(像 example.com)只是主机的名称。URL 可以包含更多细节——比如路径和查询——这会改变服务器返回的内容。

例如:

  • https://example.com/pricing
  • https://example.com/search?q=shoes
URL 里的 “#something” 有什么作用?

片段(以 # 开头的部分)由浏览器处理,不会在 HTTP 请求中发送给服务器。

常见用法:

  • 跳到页面的某个区段(如 #reviews
  • 在一些客户端应用里用于跟踪状态

仅修改片段往往不会触发完整页面重载。

用通俗的话说,什么是 HTTP?

HTTP 是客户端(浏览器/应用)与服务器之间进行请求—响应对话的规则。

实际上:

  • 浏览器发送针对某个 URL 的 HTTP 请求
  • 服务器以状态码、头部和主体(HTML、JSON、图片等)进行回复
什么时候应该使用 GET,什么时候用 POST?

当你要获取某些东西(只读、可被书签和分享)时用 GET,例如加载页面或获取数据。

当你要提交需要处理的数据时用 POST,例如创建帐号、发表评论或提交订单。

实用提示:如果操作应当可被书签或分享(像搜索),优先考虑 GET;如果会改变服务器状态,通常用 POST

常见的 HTTP 状态码如 200、404、301、500 是什么意思?

状态码概括了请求的结果:

  • 200 — 成功
  • 404 — 服务器可达,但该 URL 下没有资源
  • 301/302 — 资源已移动(重定向)
  • 500 — 服务器在处理请求时发生错误

排查时,404 往往意味着 URL 错误或页面被删除;500 通常指服务器端的错误或故障。

什么是 DNS,为什么它在页面加载前发生?

浏览器需要一个 IP 地址 来连接服务器。DNS 是把人类可读的域名(如 example.com)翻译成 IP 地址的系统。

如果某个站点有时无法解析,DNS 常常是原因之一——尤其是在一个网络或设备上无法解析但在另一个上可以的情况下。

什么是浏览器缓存,它如何导致“过时”的页面?

缓存是浏览器保存已下载资源副本以加快重复访问速度的机制。

实用影响:

  • 你可能看不到立即更新,因为浏览器重用了旧文件。
  • 在调试时,强制刷新或清除站点数据可以帮助看到最新内容。

服务器通过 HTTP 头部(如缓存寿命和重验证策略)控制大量缓存行为。

HTTPS 是否意味着网站值得信任?

HTTPS 对传输内容进行加密,能帮助确认你连接的是期望的域名,从而保护登录、表单和敏感数据在传输过程中的安全。

但它等于网站值得信任。你仍需评估:

  • 站点的声誉
  • URL 是否与你期望的一致
  • 是否被要求下载或提交可疑内容

Related posts