Fin*_*las 10 caching http http-caching
根据Authorization
OAuth规范包含标头的Web服务器的响应,HTTP缓存是否有用?
Request1 Authorization : AUTHTOKEN
Request2 Authorization : ANOTHERAUTOTOKEN
Run Code Online (Sandbox Code Playgroud)
在这种情况下,给定HTTP缓存,第二个请求将返回第一个用户的缓存响应.对于跨用户通用的内容而言,这不是问题,但是对于共享缓存为其他用户提供响应而言,这是错误的.
同样,如果我们使用Vary
标头并改变Authorization
,这意味着我们的缓存将为每个标记存储一个缓存副本,这肯定会破坏HTTP缓存的目的.浏览器本地缓存(私有)可以正常工作,但这仍然意味着每个会话至少一次来自每个用户的原始请求.
编辑
有问题的服务需要对所有请求进行授权,但是根据我所阅读的内容,除非存在must-revalidate,public和s-maxage,否则不应该从包含授权标头的共享缓存中提供响应.
因此,我的问题是,鉴于API既具有通用性(所有用户的响应相同),又具有用户特定的响应,甚至可以进行缓存?拥有s-maxage和公共标头但是授权标头意味着如果我正确地遵循RFC,缓存将解决UserA对UserB,UserC等的响应.
参见http://greenbytes.de/tech/webdav/rfc7234.html#response.cacheability:
“高速缓存不得存储对任何请求的响应,除非:高速缓存可以理解该请求方法并将其定义为可缓存的,并且...授权标头字段(请参见[RFC7235]的4.2节)不会出现在请求,如果缓存是共享的,除非响应明确允许它,否则...”
归档时间: |
|
查看次数: |
4767 次 |
最近记录: |