能否缓存HTTP OPTIONS响应?

9

我正在进行CORS调用。现在,每个API调用都有一个OPTIONS预检请求。是否可能缓存OPTIONS预检请求?

我看到Cache-Control头可以用来缓存实际的GET响应。https://www.fastly.com/blog/caching-cors

但是,我该如何缓存OPTIONS调用的响应?


6
您无法控制与CORS预检请求相关的客户端浏览器缓存。浏览器会自己控制缓存。影响该缓存的唯一手段是使用 Access-Control-Max-Age 响应标头。请注意,Chrome 最多只会缓存预检 OPTIONS 响应长达600秒(10分钟),无论您将该标头的值设置得多高。 - sideshowbarker
你可以使用 AWS Cloudfront 进行缓存,这是 AWS 云平台的 CDN。因此,CDN 可以与后端服务器通信,然后缓存 OPTIONS 响应。不确定是否应该这样做... - dutoitns
2个回答

0

对于CORS预检请求缓存HTTP OPTIONS是一个明智的选择。

如果所有浏览器版本、来源或客户端的CORS预检请求的响应体完全相同,则可以激活HTTP OPTIONS缓存。

如果不确定,请将HTTP OPTIONS保留为无缓存,以防止破坏基于HTTP CORS的请求...毕竟,与实际的HTTP飞行请求相比,HTTP OPTION请求非常轻量级和快速(而且,浏览器已经为CORS的HTTP OPTIONS预检请求建立了客户端缓存)。


那么你可以激活HTTP OPTIONS缓存 - 我该如何做到这一点? - izogfif

0
根据this
此方法的响应不可缓存。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接