我目前正在构建REST API。无论谁访问资源,我创建的许多资源都将始终相同。少数几个没有Vary: Authorization
标题。
有两个例外:
我的问题是,在这种情况下,仍然可以正确设置缓存。特别是,我想使用反向代理,如nginx,varnish或haproxy来卸载主服务。
这个问题有优雅的解决方案吗?
答案 0 :(得分:1)
Vary: Authorization
是不必要的;对具有授权的请求的响应将自动为私有,并且不会被共享缓存缓存。
您可以发送Cache-Control: public
来覆盖此内容;可以使用常规规则缓存对此的响应。
但是,如果您希望这些响应保持身份验证,则需要进行身份验证。您也可以通过发送Cache-Control: no-cache
来执行此操作,这将强制缓存在提供存储的响应之前检查原点。
如果您只是希望让您的反向代理(例如,Varnish,nginx)进行缓存,那么它可能会被配置为在“边缘”上强制进行身份验证,服务请求具有正确的身份验证时缓存中的响应。查看其文档以获取详细信息。