17.1 内容协商技术

共有 3 种不同的方法可以决定服务器上哪个页面最适合客户端:让客户端来选择、服务器自动判定,或让中间代理来选。这 3 种技术分别称为客户端驱动的协商、服务器驱动的协商以及透明协商(参见表 17-1)。本章,我们将研究每种技术的机制及其优缺点。

表17-1 内容协商技术概要

技  术 工作原理 优  点 缺  点
客户端驱动 客户端发起请求,服务器发送可选项的列表,客户端选择 在服务器端的实现最容易。客户端可以选择最合适的内容 增加了时延:为了获得正确的内容,至少要发送两次请求
服务器驱动 服务器检查客户端的请求首部集并决定提供哪个版本的页面 比客户端驱动的协商方式要快。HTTP 提供了 q 值机制,允许服务器近似匹配,还提供了 Vary 首部供服务器告知下游的设备如何对请求估值 如果结论不是很明确(比如首部集不匹配),服务器要做猜测
透明 某个中间设备(通常是缓存代理)代表客户端进行请求协商 免除了 Web 服务器的协商开销。比客户端驱动的协商要快 关于如何进行透明协商,还没有正式的规范