Appearance
题目
某浏览器发出的 HTTP 请求报文如下:
GET /index.html HTTP/1.1
Host: www.test.edu.cn
Connection: close
Cookie: 123456下列叙述中,错误的是( )。
错因
A
A 命题"请求 index.html"——首行 GET /index.html HTTP/1.1 明确表示这是一个 GET 请求、目标资源 = /index.html、协议版本 HTTP/1.1。命题完全对应报文内容,不是错误。
B
B 命题"index.html 存放在 www.test.edu.cn"——Host: www.test.edu.cn 头部告诉服务器:"我要访问的资源属于 www.test.edu.cn 这个虚拟主机域名"。Host 头是 HTTP/1.1 必填项(同 IP 多虚拟主机靠它区分)。命题对,不是错误。
D
D 命题"浏览器曾经浏览过 www.test.edu.cn"——Cookie: 123456 头表示浏览器在请求里带上了之前服务器设置的 Cookie(来自 Set-Cookie 响应头)。第一次访问时不会有 Cookie,所以这次有 Cookie 说明之前访问过。命题对,不是错误。
总解析
第一步:解析 HTTP 报文每个字段
| 字段 | 含义 | 推断 |
|---|---|---|
GET /index.html HTTP/1.1 | GET 方法获取 /index.html,HTTP/1.1 协议 | 请求 index.html ✓ |
Host: www.test.edu.cn | 资源所在的虚拟主机域名 | index.html 在 www.test.edu.cn ✓ |
Connection: close | 请求一次响应后立即关闭连接 | 非持续连接! |
Cookie: 123456 | 携带之前收到的 Cookie 值 | 之前访问过 ✓ |
第二步:判定 C 项的错误点
Connection: close 是 HTTP 明确请求关闭连接的指令——即使 HTTP/1.1 默认是持久连接(keep-alive),客户端可以用 Connection: close 覆盖默认行为,要求一次请求响应后立即关闭 TCP 连接。
C 项却说"请求使用持续连接"——与 Connection: close 含义相反。所以 C 是错误命题。
第三步:核对
| 选项 | 命题 | 与报文对应 | 判定 |
|---|---|---|---|
| A | 请求 index.html | ✓ 首行 | 对 |
| B | index.html 在 www.test.edu.cn | ✓ Host 头 | 对 |
| C | 请求使用持续连接 | ❌ Connection: close 是非持续 | 错 |
| D | 之前浏览过 www.test.edu.cn | ✓ Cookie 头 | 对 |
题问"错误的",唯一错误项是 C。
最终答案是 C。
编者注(生僻术语):HTTP/1.0 默认每个请求一条 TCP 连接(非持续),HTTP/1.1 默认 持续连接(keep-alive)——一条 TCP 复用多个请求。
Connection头部是双方协商连接行为的字段:
Connection: keep-alive显式声明保持连接(HTTP/1.0 时常用,1.1 默认就是)Connection: close显式要求关闭(即使是 1.1 也立刻关)本题的
Connection: close是浏览器主动放弃 1.1 持续连接、请求 1 次后立即关。这是 HTTP/1.1 兼容 1.0 行为的设计——客户端可降级到非持续。