📄 一句话概括
服务器把状态行+消息头+空行+消息体组装成响应交回协议栈——结构与 1.1.5 的请求消息对仗,同一封信的正反面。
📝 本节和前面几节的关系
内容备好了、资格审过了;本篇看回信怎么写。
一、三段式
状态行:版本+状态码(如 HTTP/1.1 200 OK); 消息头:Content-Type、Content-Length 等; 空行之后是消息体——文件内容或程序输出。
二、与请求对仗
1.1.5 的请求=请求行+消息头+空行+消息体; 响应完全同构——学过一半等于学过全部。
三、动手 Demo:拼一条响应消息
服务器组装响应的三段式:
for s in ['状态行 HTTP/1.1 200 OK',
消息头 Content-Type: text/html',
Content-Length: 1280',
空行',
消息体 <html>...页面内容...</html>']:
print(s)
实跑输出:
--------------------------------------------------------------------
拼一条响应消息
--------------------------------------------------------------------
服务器组装响应的三段式:
状态行 HTTP/1.1 200 OK
消息头 Content-Type: text/html
Content-Length: 1280
空行
消息体 <html>...页面内容...</html>
与 1.1.5 的请求消息结构对仗——同一封信的正反面。
响应写好后走什么路回去?还是 6.2 那套协议栈—— 去时的路反过来走一遍,本章开头衔接上。
30 秒实验
- 用 curl -v 看一次完整响应的结构。
- 数数常见响应头里哪些是必须的。
- 对照 1.1.5 画出请求与响应的对照图。
常见误区
- 以为响应没有头——结构与请求同构。
- 以为状态码只有 404——2/3/4/5 开头各有家族。
自测三问(点开对答案)
1. 响应消息三段式? —— 状态行、消息头、消息体(中间空行)。 2. Content-Length 说什么? —— 消息体有多少字节。 3. 与请求消息的关系? —— 同构,正反面。- ☐ 下一节(6.4.1 通过响应的数据类型判断其中的内容)
相关笔记
- 生成HTTP请求消息 — 请求侧的结构
- 发送请求后会收到响应 — 状态码总览
- 🔌 网络是怎样连接的 · 索引