gpt4 book ai didi

rest - 经过身份验证的 REST api 的 HTTP 缓存

转载 作者:行者123 更新时间:2023-12-02 04:04:34 25 4
gpt4 key购买 nike

我目前正在构建 REST API。无论谁在访问资源,我创建的许多资源始终是相同的。少数没有的将具有 Vary: Authorization header 。

有两个异常(exception):

  1. 如果您未通过身份验证,您将收到 401 响应。
  2. 对于某些您无权访问的资源,您可能会收到 403 响应。

我的问题是,在这种情况下是否仍然可以正确设置缓存。特别是,我想使用反向代理(例如 nginx、varnish 或 haproxy)来卸载主服务。

这个问题有优雅的解决方案吗?

最佳答案

变化:授权是不必要的;对具有授权的请求的响应自动是私有(private)的,并且不会被共享缓存缓存。

您可以发送Cache-Control: public来覆盖它;可以使用正常规则缓存响应。

但是,如果您希望这些响应保持经过身份验证,则需要强制进行身份验证。您还可以通过发送Cache-Control: no-cache来做到这一点,这将强制缓存在提供存储的响应之前检查源。

如果您只是想让反向代理(例如 Varnish、nginx)进行缓存,则很可能它有一种配置方式可以在“边缘”上实现身份验证,从而提供服务当请求经过正确的身份验证时,缓存中的响应。查看其文档以了解详细信息。

关于rest - 经过身份验证的 REST api 的 HTTP 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com