向 HTTP 响应添加 ETag 时,是否应该包含媒体类型?当然,我知道 ETag 是不透明的,但这里有一个例子:
- 假设我有一个客户端请求应用程序/json 中的人员。我查找它并创建我的 ETag 并将此人的 JSON 表示发回
- 现在,同一个客户端在同一个 URI 上对同一个人(尚未修改)发出另一个请求,但希望它在 application/xml 中。
显然,简单地返回 304 是不正确的,但我的问题是,在第二个请求中,我是否希望 ETags 匹配但没有基于 Accept 标头(或内容标头)的缓存。此外,缓存是否有可能来自同一个 URI 的两种表示形式,或者每次切换 Content-Type 时总是有无效的缓存?