第 1 课
打开一个网页时,到底发生了什么?
跟着一个请求从浏览器出发,到达服务器再返回。然后对着一个模拟 API 逐个试用 HTTP 方法,最后做个小测验。用顶部的小白 / 进阶开关切换讲解的深度。
第 1 单元
请求的旅程
整体来看。打开一个网页,就像打电话给商店订东西:
- 查到商店的电话号码。(DNS)
- 拨号,等对方接起来。(TCP)
- 确认对方真的是那家店,然后换到一条私密线路。(TLS)
- 说出你要什么。(HTTP 请求)
- 商店把东西准备好。(服务器处理)
- 对方把东西交给你,附上一张写着“好了”的单子。(HTTP 响应)
- 你拆开后发现还缺几样,再要一次。(渲染)
深入底层。一次页面加载要经过四层协议,每一层都依赖它下面的那一层:
HTTP方法、请求头、状态码。HTTP/1.1 和 h2 跑在 TLS + TCP 上;HTTP/3 跑在 QUIC 上。
TLS 1.3加密,并证明服务器的身份。证书、ECDHE、ALPN。
TCP可靠、有序的字节流。在 HTTP/3 中被 QUIC(基于 UDP)取代。
IP把数据包送到某个地址。DNS 负责把名字转换成这些地址。
点击播放观看整个过程,或点击某个阶段单独重放。
实际传输的内容
第 2 单元
HTTP 方法
方法是请求里的动词:它说明你想对资源做什么。下面是一个迷你书架 API。选一个方法,点击发送请求,看看服务器上的数据会发生什么。连续发送两次,就能看出哪些方法是幂等的。
安全 = 只读取,从不修改数据。幂等 = 做两次和做一次的效果一样。
客户端
服务器
请求
响应
(点击“发送请求”)
服务器数据:/api/books
| id | title | read |
|---|
第 3 单元