计网 14|HTTP 协议核心:报文结构、状态码、持续连接

第一次看到 2015(40) 那道 HTTP 请求报文题,我盯着 Connection: close 想:这不明明是「保持连接」嘛,怎么选项说它「使用持续连接」是错的?

后来才懂:Connection: close 恰恰是主动声明「这次说完就断开」 ,是非持续连接的写法。持续连接写的是 Connection: keep-alive(HTTP/1.1 默认就保持,通常省略)。这一个字段,就是考试爱挖的坑。

这篇把 HTTP 的报文、状态码、以及「持续 vs 非持续」这条影响性能的主线讲透,并直接用近年真题练手。

〇、先花两分钟:HTTP 是「顾客点单、厨房出菜」

HTTP(超文本传输协议)是浏览器和 Web 服务器之间的「对话语言」:浏览器发请求报文 (我要哪个页面),服务器回响应报文(页面内容 + 状态)。

关键特征:

  • 应用层协议 ,基于 TCP,默认端口 80(HTTPS 是 443);

  • 无状态:服务器不记得你上一次请求过什么(所以才需要 Cookie 来「记仇」);

  • 一个页面往往由多个对象组成(HTML + 图片 + 脚本),怎么传这些对象,决定了快慢。

一句话:HTTP = 浏览器点单、服务器出菜,无状态、靠 TCP 传输。

图示:客户端发 GET /index.html HTTP/1.1,服务器回 200 OK + 页面;下方对比非持续(每对象新建 TCP)与持续(复用同一 TCP)连接

一、HTTP 报文结构

请求报文:

复制代码
GET /index.html HTTP/1.1      ← 请求行:方法 路径 版本
Host: www.test.edu.cn         ← 首部行(多个)
Connection: close
Cookie: 123456
                            ← 空行
(实体主体,GET 通常为空)

常见方法:GET(获取)、POST(提交)、HEAD(只取首部)。

响应报文:

复制代码
HTTP/1.1 200 OK              ← 状态行:版本 状态码 短语
Content-Type: text/html
                            ← 空行
(实体主体:页面内容)

二、状态码(必背)

类别 含义 常见
1xx 信息性(继续) 100
2xx 成功 200 OK
3xx 重定向 301 永久移动、302 临时
4xx 客户端错误 404 Not Found、403 禁止
5xx 服务器错误 500 内部错误

记法:2 成功、3 跳转、4 你错了、5 它崩了。

三、持续连接 vs 非持续连接(性能主线)

一个 Web 页常含多个对象(HTML + 好几张图)。怎么传这些对象,是 HTTP 性能的核心:

  • 非持续连接(HTTP/1.0 默认) :每取一个对象,就新建一个 TCP 连接,传完就关。N 个对象 = N 次 TCP 握手(每次约 2 RTT:握手 1 RTT + 传 1 RTT)。开销巨大。

  • 持续连接(HTTP/1.1 默认) :一个 TCP 连接传完所有对象再关。建连一次,后面对象连续传,开销小得多。

⚠️ 易错 :Connection: close = 非持续(传完即断);keep-alive 或省略 = 持续。看到 close 别当成「保持」。

四、Cookie:给「无状态」补记忆

HTTP 本身无状态,但服务器想记住你是谁(登录态、购物车)。做法:

  1. 服务器首次响应时带 Set-Cookie 首部,把一小段身份标识发给浏览器;

  2. 浏览器存下,之后每个请求都带 Cookie 首部回传;

  3. 服务器据此识别你。

所以 Cookie: 123456 出现在请求报文里,就说明浏览器之前访问过该站点(2015(40) 的考点)。

五、真题拆解 1:访问 Web 用不到的协议(2014(40),答案 D)

使用浏览器访问某大学 Web 网站主页时,不可能使用到的协议是?

访问网站会用到:

  • PPP:若通过拨号/点对点链路接入(链路层封装);

  • ARP:浏览器所在主机要发 IP 包,需 ARP 解析同网段网关 MAC;

  • UDP:DNS 解析域名默认走 UDP;

  • SMTP :这是发电子邮件的协议,浏览网页用不到。

答案:D(SMTP)。

六、真题拆解 2:Connection: close 的含义(2015(40),答案 C)

浏览器请求报文含 GET /index.html HTTP/1.1、Host: ...、Connection: close、Cookie: 123456。下列叙述错误的是?

  • A「请求浏览 index.html」✓ 对;

  • B「在 <www.test.edu.cn> 上」✓ 对(Host 首部);

  • C「请求使用持续连接」✗ 错 ------Connection: close 表示非持续,传完即断;

  • D「曾经浏览过该站」✓ 对(有 Cookie)。

答案:C(错误叙述)。

七、真题拆解 3:非持续连接的对象开销(2024(40),答案 D)

浏览器不支持并行 TCP,使用非持久 HTTP/1.0 请求 1 个 web 页 + 同站 7 个小图像。从建立 TCP 连接起,到接收完所有内容,至少需多少个 RTT?

非持续:每个对象(1 页 + 7 图 = 8 个对象)都新建一个 TCP 连接,每个对象约 2 RTT(握手 1 RTT + 传 1 RTT)。

8 对象 × 2 RTT = 16 RTT。

答案:D(16)。

八、真题拆解 4:持久连接耗时(2022(40),答案 B)

HTTP/1.1(持久连接)请求 news408.html(1 MSS)引用 1 幅图像(3 MSS),RTT=10ms,已解析域名。从建立 TCP 起到收完至少多久?

持久连接只建一次 TCP(约 1 RTT),之后 html 与图像在同一连接上依次传,合计约 4 RTT = 40ms(建立连接 + 取 html + 取图像,含请求与确认开销)。

答案:B(40ms)。对比:若用非持续,会远超此值(见上题逻辑)。

九、17 年真题考在哪

年份(题号) 考法 答案
2014(40) 访问 Web 用不到的协议 D(SMTP)
2015(40) 请求报文各首部含义(Connection/Cookie) C(非持续)
2022(40) HTTP/1.1 持久连接取多对象耗时 B(40ms)
2024(40) 非持久 HTTP/1.0 多对象 RTT 数 D(16)

命题规律 :①Connection: close 是非持续还是持续,年年考变体;②持续 vs 非持续的对象传输 RTT 计算是高频大题(2022、2024);③「用到/用不到哪些协议」考协议栈全局观(2014)。

十、易错点清单

易错点 正确说法
Connection: close 是持续连接 错,是非持续(传完即断)
HTTP/1.0 默认持续连接 错,HTTP/1.0 默认非持续;1.1 才默认持续
非持续连接只握手一次 错,每个对象都新建 TCP,N 对象 = N 次握手
HTTP 是有状态的 错,无状态,靠 Cookie 补记忆
404 是服务器错误 错,404 是客户端错(找不到资源),5xx 才是服务器
浏览网页会用到 SMTP 错,SMTP 是发邮件,与浏览无关
Cookie 存在服务器 错,Cookie 存在浏览器,每次请求带回

速查表(文末收藏版)

复制代码
HTTP:应用层,基于 TCP,端口 80(HTTPS 443),无状态
请求报文:请求行(GET/POST 路径 版本) + 首部 + 空行 + 实体
响应报文:状态行(版本 状态码 短语) + 首部 + 空行 + 实体
​
状态码:2成功 3重定向 4你错(404) 5它崩(500)
Cookie:服务器 Set-Cookie → 浏览器存 → 之后请求带 Cookie(补记忆)
​
持续连接(HTTP/1.1默认):一个 TCP 传所有对象
非持续(HTTP/1.0)      :每对象新建 TCP,N 对象≈2N RTT
Connection: close = 非持续;keep-alive/省略 = 持续
​
真题:2014(40) SMTP不用;2015(40) close=非持续;2022(40) 40ms;2024(40) 16 RTT

本文依据 :谢希仁《计算机网络(第 8 版)》第 6 章 6.3;真题年份题号来自 zhenti_all.json(2009--2025 计网 no 33--40)。

相关推荐
aichitang202416 小时前
代数拓扑学与现代前沿视角
考研·算法·数学建模·ai·拓扑学·高考
最强小杰21 小时前
minimax-m3 突然报 HTTP 529 怎么办?连续重试为何更难恢复,退避时间该怎么算?
网络·网络协议·http·ai
MicrosoftCloud21 小时前
计网 12|ARP、DHCP、ICMP:地址解析、动态分配与差错报告
计算机网络·考研·408·arp·dhcp·icmp·ping
Thanks_ks21 小时前
常见 HTTP 状态码的坑:301/302、401/403、500/502 之间差的那一个词
计算机网络·nginx·http·面试·状态码·后端开发·浏览器缓存
好啊好啊郝!1 天前
计算机网络最基础知识点
服务器·网络·计算机网络
Thanks_ks1 天前
Cookie 和 Session 到底是什么关系——登录态是怎么维持的
分布式·http·jwt·cookie·session·后端开发·登录态
QianhangQianping1 天前
WebSocket实时推送+ HTTP 定时轮询:一块大屏两套取数怎么不打架
前端·websocket·网络协议·http·低代码·架构·数据可视化
优化控制仿真模型1 天前
2026【英一】考研英语一历年真题及答案解析PDF电子版(1980-2025年)
考研·pdf
pikapika~~~1 天前
计算机网络八股
服务器·网络·计算机网络