考虑以下场景:
- 我有 RESTful URL /articles 返回文章列表
- 用户在每个请求上使用授权 HTTP 标头提供其凭据
- 根据用户的权限,文章可能因用户而异
对于这种情况,是否可以使用缓存代理(例如 Squid)?
代理将只看到 URL /articles,因此它可能返回仅对生成缓存的第一个用户有效的文章列表。其他请求 URL /articles 的用户可以看到他们无权访问的文章,这当然是不可取的。
我应该滚动自己的缓存还是可以将某些缓存代理软件配置为将其缓存基于授权 HTTP 标头?
一种尝试的可能性是使用Vary: Authorization
响应头指示下游缓存通过根据请求改变缓存文档来小心缓存Authorization
header.
如果您使用响应压缩,您可能已经在使用此标头。用户请求的资源一般带有headerAccept-Encoding: gzip, deflate
;如果服务器配置为支持压缩,则响应可能带有标头Content-Encoding: gzip
and Vary: Accept-Encoding
已经。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)