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