我们在REST API中将etag
头用于条件请求。根据当前经过身份验证的用户,某些资源具有不同的内容(某些用户查看更多信息,而其他用户查看较少信息)。当前etag
是在“全部”资源上计算的,即,除非整体资源发生变化,否则所有用户都将获得相同的etag
。除非客户端跨用户会话缓存资源etag
,这似乎是在浏览器中发生,否则这不是问题。由于服务器告诉客户端/浏览器它没有更改,因此第二个用户将从第一个用户看到资源的缓存版本。如果第一个用户被允许看到的内容比第二个用户多,那么甚至会变成安全问题。
我正在搜索Internet,但是没有找到有关etag
和用户会话的任何信息。是否有任何最佳做法或建议来处理此类情况?