gpt4 book ai didi

带授权的 HTTP 缓存

转载 作者:可可西里 更新时间:2023-11-01 15:10:34 25 4
gpt4 key购买 nike

根据 OAuth 规范,根据包含 Authorization header 的 Web 服务器的响应,HTTP 缓存是否没有用处?

Request1 Authorization : AUTHTOKEN
Request2 Authorization : ANOTHERAUTOTOKEN

在这种情况下,给定 HTTP 缓存,第二个请求将为第一个用户返回缓存的响应。对于跨用户通用的内容来说这不是问题,但对于共享缓存为其他用户提供响应来说感觉不对。

同样,如果我们要使用 Vary header 并根据 Authorization 进行更改,这意味着我们的缓存将为每个 token 存储一个缓存副本,这肯定会破坏 HTTP 缓存的目的.浏览器本地缓存(私有(private))可以正常工作,但这仍然意味着每个用户每个 session 至少有一次原始请求。

编辑

有问题的服务需要对所有请求进行授权,但是根据我所读的内容,除非存在 must-revalidate、public 和 s-maxage,否则不应执行来自包含授权 header 的共享缓存的响应.

因此,我的问题是,如果 API 既具有通用性(对所有用户的响应都相同)又具有用户特定的响应,那么缓存是否可行?拥有 s-maxage 和公共(public) header 但有授权 header 意味着如果我正确遵循 RFC,缓存将解析 UserA 对 UserB、UserC 等的响应。

最佳答案

参见 http://greenbytes.de/tech/webdav/rfc7234.html#response.cacheability :

“缓存不得存储对任何请求的响应,除非:请求方法被缓存理解并定义为可缓存的,并且 ... Authorization header 字段(请参阅 [RFC7235] 的第 4.2 节)不会出现在请求中,如果缓存是共享的,除非响应明确允许,...”

关于带授权的 HTTP 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836657/

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