休息内容协商和缓存

我想知道如何缓存与基于内容协商的API协同工作。 由于要以XML或JSON获取资源,因此URI将相同,例如:

http://example.com/bikes/mountain

该服务根据Accept类型标题返回JSON / XML。 高速缓存有多聪明?

例如:

  • 如果一个客户端使用Accept类型来请求这个返回XML。
  • 响应被web服务器缓存1分钟。
  • 第二个客户端使用Accept类型来请求相同的资源以返回JSON
  • 高速缓存检查接受/内容类型? 或者这会导致JSON请求者获取XML数据,因为这是服务器缓存的内容? 我希望这是如此明显,它已经被照顾,否则,这不是一个非常大的参数,在URI中包含.xml / .json?

    我想我的问题基本上是,我仍然可以安全地使用内容协商,同时仍然使用标准的缓存技术?


    Darrel是正确的,因为Vary头告诉客户端哪些请求头可以变化以获得资源的不同表示。

    该值告诉客户它可以通过设置或更改Accept标头(在您的情况下为JSON或XML)以不同的文件格式请求表示。 如果您使用Accept-Language标题,您还可以用英语和法语获得山地自行车的不同表示形式。

    这两个请求发送不同的值,所以它们应该总是分开缓存。

    当你在Vary头中使用'*'值时,这意味着不应该缓存响应。


    是。 查看RFC 2616中Vary头的描述

    在我简单理解各种头部的情况下,缓存将使用在头部中命名的头部字段来唯一标识缓存的表示。

    链接地址: http://www.djcxy.com/p/46317.html

    上一篇: Rest Content Negotiation and Caching

    下一篇: Compressibility Example