我已经将我所知道的所有标头设置为在我的服务器上禁用缓存(甚至禁用 ETAG),但 Safari 仍然偶尔(大约 50% 次)缓存我的请求。
Workflow
我正在实施 oauth 1,所以:
-
浏览器使GET /api/user
request
-
服务器返回405
-
浏览器重定向到第三方网站进行身份验证
-
浏览器被重定向到api/callback
它将一些信息存储到cookie中。
-
浏览器被重定向回原始路由。
-
浏览器使GET /api/user
请求应该会成功,但是它从磁盘缓存中获取 405。
向 Safari Network Inspector 请求摘要
Summary
URL: http://localhost:3000/api/user
Status: 405 Method Not Allowed
Source: Disk Cache
Request
无请求,从磁盘缓存提供服务。
Response
传输编码: Identity
内容类型: application/json; charset=utf-8
Pragma: no-cache
缓存控制: private, no-cache, no-store, must-revalidate, max-age=0
Vary: Cookie, Accept-Encoding
Date: Wed, 23 Jan 2019 11:34:23 GMT
内容编码: gzip
Expires: Thu, 01 Dec 1994 16:00:00 GMT
联系: close
x-供电者: Express
结论
我不知道出了什么问题,我将非常感谢任何帮助。我的
Safari 版本是12.0.2
。我无法使用 Chrome 重现此问题。