即使禁用缓存Safari浏览器缓存的GET请求(Safari Caching GET request

2019-09-26 03:23发布

我已成立,我知道所有的头到我的服务器上禁用缓存(甚至禁用ETAG),但Safari浏览器还偶尔(大约50%的时间)缓存我的请求。

工作流程

我采取的OAuth 1,那么:

  1. 浏览器发出GET /api/user请求

  2. 服务器返回405

  3. 浏览器重定向到第三方网站认证

  4. 浏览器重定向到api/callback存储一些信息到cookie中。

  5. 浏览器被重定向回原来的路线。

  6. 浏览器发出GET /api/user应该是成功的请求,但是它得到405从磁盘缓存中,而不是。

从Safari的网络督察请求摘要

摘要

网址: http://localhost:3000/api/user

状态: 405 Method Not Allowed

来源: Disk Cache

请求

没有要求,从磁盘缓存中。

响应

传输编码: Identity

内容类型: application/json; charset=utf-8 application/json; charset=utf-8

附注: no-cache

缓存控制: private, no-cache, no-store, must-revalidate, max-age=0

变化: Cookie, Accept-Encoding

日期: Wed, 23 Jan 2019 11:34:23 GMT

内容编码: gzip

到期日: Thu, 01 Dec 1994 16:00:00 GMT

连接: close

X-通电方式: Express

结论

我不知道什么是错的,我将不胜感激任何帮助。 我的Safari浏览器的版本是12.0.2 。 我是不是能复制这个问题自Chrome。

Answer 1:

用途Vary: * 。 这神奇的解决我的问题。

这个答案让我: https://stackoverflow.com/a/2068353/1364158

或者,你真的可以强制浏览器通过在您的网址一些无意义的随机查询阿根廷,例如,用于加载请求一个新版本/api/user?ts=18284



文章来源: Safari Caching GET request even with disabled cache