我应该在我的ETag中包含媒体类型吗?

jhe*_*cks 6 rest http http-caching http-headers

将ETag添加到HTTP响应时,是否应该包含媒体类型?当然,我知道ETag是不透明的,但这是一个例子:

  • 假设我有一个客户端在application/json中请求一个Person.我查阅并创建我的ETag并发回该人的JSON表示
  • 现在,同一个客户端在同一个URI上对同一个人(尚未修改)发出另一个请求,但希望它在application/xml中.

显然,简单地返回304是不正确的,但我的问题是,在第二个请求中,我希望ETag匹配但是没有基于Accept标头(或内容标头)的缓存.此外,是否有可能缓存将具有来自同一URI的两个表示,或者每次切换Content-Type时是否总是会有无效缓存?

Jul*_*hke 5

不同的表示需要不同的实体标签.

http://trac.tools.ietf.org/wg/httpbis/trac/ticket/39.