我想知道缓存如何与基于内容协商的 API 一起使用。由于要以 XML 或 JSON 格式获取资源,因此 URI 将相同,例如:
http://example.com/bikes/mountain
该服务根据 Accept 类型 header 返回 JSON/XML。缓存有多智能?
例如:
如果一个客户端使用 Accept 类型请求返回 XML。
缓存检查是否接受/内容类型?或者这会导致 JSON 请求者取回 XML 数据,因为那是服务器缓存的内容?我希望这是一个如此明显的事情,它已经被处理了,否则,在 URI 中包含 .xml/.json 不是一个很大的论据吗?
我想我的问题基本上是,我可以在仍然使用标准缓存技术的同时安全地使用内容协商吗?
最佳答案
是的。查看 RFC 2616 中 Vary header 的描述
在我对变量 header 的简单理解中,缓存将使用在变量 header 中命名的 header 字段来唯一标识缓存的表示。
关于休息内容协商和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014864/