Appearance
题目
下列叙述中不属于 cookie 的技术典型用途的是( )。
错因
A
把"用户跟踪"和"侵犯隐私的恶意跟踪"挂钩,认为这种用途不该是 cookie 的"典型"用途,于是把 A 当成错项。但题面问的是技术上的典型用途——cookie 当年被网景设计出来的核心动机之一就是"识别老用户",这是它最早、最经典的用法之一。第三方追踪 cookie 引发的隐私问题是后续衍生争议,不影响"用户跟踪"是 cookie 典型用途这一事实。
B
误以为"个性化推荐"是后端推荐算法(协同过滤、深度学习模型)的事,跟 cookie 没关系。实际上推荐系统离不开 cookie——服务端通过 cookie 识别"这个用户是谁"才能把推荐结果对上号;用户的浏览历史、偏好标签也常常以 cookie ID 为主键存储。换句话说,cookie 提供"身份标识",算法在它基础上跑。所以"个性化推荐"是 cookie 的标准应用场景。
C
把"购物车"误以为只能用服务端 session 实现,认为 cookie 太简单存不下购物车。实际上早期电商网站的购物车正是 cookie 的经典示例——把商品 ID 列表序列化进 cookie、客户端关闭浏览器再打开还能恢复。即便后端用了 session,session ID 本身也存在 cookie 里。教材里讲 HTTP 状态保持时,"购物车"几乎是必举的例子。
总解析
Cookie 是什么:RFC 6265 定义的 HTTP 状态保持机制——HTTP 协议本身无状态,每个请求互相独立;服务器通过 Set-Cookie 响应头把一段小数据(≤ 4 KB)写入客户端,浏览器之后每次访问同域名都自动在 Cookie 请求头里把它带回服务器,从而让服务器识别"是谁来了"。
Cookie 的典型用途(围绕"识别 + 持久化少量状态"展开):
| 用途 | 实现思路 |
|---|---|
| 会话管理(登录态) | cookie 存 session ID,服务器拿 ID 查 session 库 |
| 用户跟踪 | cookie 存唯一用户 ID,记录"老访客 / 新访客"、访问轨迹 |
| 个性化推荐 | cookie 标识用户身份 → 关联其浏览偏好 → 算法基于此推荐 |
| 购物车 | cookie 存商品 ID 列表 / 数量,跨页面、跨会话保持 |
| 偏好设置 | cookie 存语言、主题、字号等用户选择 |
为什么 D 错:缩短响应时间是 Web 缓存(浏览器缓存、Cache-Control / ETag、代理缓存、CDN)的功能,不是 cookie 的功能。两个机制完全独立:
- 缓存 解决的是"同一份资源不必重复传输"——通过
Cache-Control、ETag、Last-Modified这些头部协商。 - Cookie 解决的是"如何识别用户身份"——它甚至会增加每次请求的开销(每个请求都要带回服务端)。
把这两者混为一谈是 D 项的核心陷阱。
最终答案是 D(缩短 Web 对象的响应时间)。
编者注(生僻术语):"Web 对象"指 HTTP 响应里的资源实体(HTML 页、图片、CSS、JS 文件等)。缩短 Web 对象响应时间的标准手段:① 浏览器本地缓存(Cache-Control: max-age);② 条件请求(If-None-Match + 304 Not Modified);③ 代理缓存 / CDN;④ HTTP/2 多路复用;⑤ 持久连接(Connection: keep-alive)。这些都跟 cookie 无关。