17.1 内容协商技术

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

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

 

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