HTTP CONTENT NEGOTIATION LAB

同一个 /docs,服务器该回哪种语言?

把请求头放上解析台:先按 q 权重排队,再逐级缩短语言标签查找;选出的语言还会改变响应头和共享缓存键。

请求与目录

三个输入都可编辑

协商轨迹

等待解析
  1. 读取头部
  2. 按权重排序
  3. 逐级查找
  4. 生成响应

请求头是偏好,不是命令。服务器仍然只能从自己的可用目录中选择。

双用户共享缓存实验

让 A 先请求,再让 B 访问同一个 /docs。观察缓存键有没有带上语言偏好。

Vary:未启用

用户 A · 中文偏好

尚未请求

用户 B · 英文偏好

尚未请求
CDN 当前缓存对象

缓存为空

请求轨迹

按 A → B 的顺序试一次

q 值只负责排序真正能不能返回,还取决于服务端可用目录与拒绝项。
Content-Language 描述结果它告诉客户端这份表示面向哪种语言受众,不负责发起协商。
Vary 改变缓存匹配内容随请求头变化,却不把该请求头纳入缓存键,就会发生串台。