揭秘 Web 2:互联网的语言
Source: Dev.to
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式。
Episode 2 – 为网络提供动力的网络协议
在 Episode 1 中,我们走遍了网页工作原理的基础:输入 URL、DNS 查询、安全连接以及页面渲染。我们只略微触及了 TCP 和 HTTP 的表面。
现在我们将更深入地探讨 网络协议,这些协议让数据在互联网中可靠且快速地传输。我们将从底层传输协议开始,逐步上升到浏览器和服务器使用的应用层语言。
1. 传输层 – 数据包在两台机器之间的旅行方式
可以把传输层想象成在 细致的快递员(可靠但较慢)和 快速的自行车信使(快速但可靠性稍差)之间做选择。
| 协议 | 关键特性 | 常见使用场景 |
|---|---|---|
| TCP (Transmission Control Protocol) | • 面向连接 – 在数据流动前通过三次握手建立虚拟连接。 • 将数据拆分为编号的段;在接收端按顺序重新组装。 • 等待 ACK,重新传输丢失的段,保证顺序交付。 • 实施流控和拥塞控制,以免网络过载。 • 额外开销 → 稍高的延迟。 | 网页浏览、电子邮件、文件传输,任何正确性比速度更重要的场景。 |
| UDP (User Datagram Protocol) | • 无连接 – 没有握手,也不跟踪单个数据包。 • 没有内置的重传、排序或拥塞控制。 • 开销极小 → 更低的延迟和更可预测的时序。 • 可以接受少量丢失。 | 直播流媒体、视频会议、在线游戏、VoIP 通话 – 实时场景中速度优先于可靠性。 |
2. 应用层 – 浏览器和服务器之间的语言
当 TCP 或 UDP 将数据包搬运过去后,网页需要一种请求/响应通信的协议。
2.1 HTTP (Hypertext Transfer Protocol)
定义客户端(例如浏览器)如何发送请求以及服务器如何回复。
- 基于文本的请求‑响应协议。
- 客户端请求资源(HTML、CSS、JSON,……)。
- 服务器返回 状态行、首部,以及可选的 主体。
- 经典的 HTTP/1.1 运行在 TCP 之上,继承了 TCP 的可靠性和顺序保证。
2.2 HTTPS (HTTP Secure)
并不是一种不同的应用协议——它只是放在 TLS 加密隧道中的 HTTP。
- 在任何 HTTP 消息交换之前,客户端和服务器会进行 TLS 握手,协商密钥、密码套件,并验证服务器证书。
- 可以把它想象成“在传输层把每个 HTTP 字节都包装进 TLS”。
- 现代浏览器将普通 HTTP 视为“非安全”,并强烈倾向于全站使用 HTTPS。
2.3 HTTP/3 (QUIC)
- HTTP/2 通过在单个 TCP 连接上复用多个 HTTP 流提升了性能,但仍受到 队头阻塞 (HOL) 的影响:如果一个 TCP 包丢失,后续所有包都会被阻塞。
- HTTP/3 运行在 QUIC 上,QUIC 是基于 UDP 构建的传输协议。
- QUIC 自带可靠性、加密(内置 TLS 1.3)和拥塞控制。
- 它是 流感知 的:每个 HTTP 流相互独立,某一流的丢失 不会 阻塞其他流。
- 结果:降低了 HOL 阻塞,页面加载更快,对不稳定的移动或 Wi‑Fi 网络更具弹性。
- 主流浏览器正逐步为大量站点采用 HTTP/3。
3. 实时与传统协议 – 超越经典网页
并非所有互联网内容都能整齐地归入 “HTML + CSS”。下面列出了一些你可能会遇到的额外协议。
3.1 WebSockets
- 解决了 HTTP 中 客户端必须始终发起 对话的限制。
- 浏览器将已有的 HTTP 连接升级为 全双工 协议,保持单个 TCP 连接打开,以实现双向实时通信。
(未完,续篇将在 Part 2 中继续)
Source: …
3.2 Email Protocols
| Protocol | Purpose | Transport |
|---|---|---|
| SMTP (Simple Mail Transfer Protocol) | 在邮件服务器之间发送电子邮件。 | TCP(通常端口 25) |
| IMAP (Internet Message Access Protocol) | 在服务器上保留邮件的同时检索消息;在设备之间同步。 | TCP(端口 143/993 用于 TLS) |
| POP3 (Post Office Protocol v3) | 将消息下载到本地设备,通常会从服务器删除。 | TCP(端口 110/995 用于 TLS) |
3.3 File‑Transfer Protocols
| Protocol | Description | Security |
|---|---|---|
| FTP (File Transfer Protocol) | 最早的文件传输方式之一;在 TCP 上使用独立的控制和数据通道。 | 明文(无加密) |
| SFTP (SSH File Transfer Protocol) | 通过 SSH 传输文件,使用单一加密通道同时传输命令和数据。 | 强加密(SSH) |
| FTPS (FTP Secure) | 带有 TLS/SSL 加密的 FTP(显式或隐式模式)。 | TLS/SSL 加密 |
4. Recap
- Transport layer: TCP(可靠) vs. UDP(快速)。
- Application layer: HTTP → HTTPS → HTTP/3(QUIC)。
- Specialized protocols: WebSockets、SMTP/IMAP/POP3、FTP/SFTP/FTPS。
理解这些构建块可以帮助你了解为何网络感觉快速、可靠且安全——以及在需要实时交互或兼容旧系统时权衡所在。
下一节我们将探讨浏览器如何将这些资源渲染成你在屏幕上看到的页面。
FTPS – 文件传输协议安全版(通常写作 FTPS),它在 SSL/TLS 上运行 FTP,为传统 FTP 模型添加加密。
从传输层的 TCP 与 UDP 到应用层的 HTTP、HTTPS、WebSockets、SMTP 与 FTP,这些协议是将互联网粘合在一起的无形胶水。每一种协议都解决了略有不同的问题:
- 可靠传输 – TCP
- 低延迟、无连接通信 – UDP
- 网页检索 – HTTP
- 安全网页浏览 – HTTPS(HTTP + TLS)
- 实时双向更新 – WebSockets
- 电子邮件传输 – SMTP
- 文件传输 – FTP(或用于加密传输的 FTPS)
当你输入 prasunchakra.com 或打开你喜欢的应用时,实际上是在触发机器之间精心分层的对话,每个协议在协议栈中发挥各自的作用。
在构建网页应用、API 或后端系统时,理解这些层次可以帮助你:
- 分析性能问题
- 做出明智的安全决策
- 诊断为何在真实网络中有时会出现“神秘”故障
在后续章节中,我们将深入探讨这个拼图的具体部分。