2

如何检测客户端何时按下 F5 / 刷新?是否有任何标头发送到服务器以表明我可以抓取?我正在做一些服务器端缓存,我想在检测到刷新时自动使缓存过期。谢谢。

4

2 回答 2

1

ETags 可能是一个更正确的解决方案,但只需查找Cache-Control标头就足够了,因为浏览器将使用它来指示不应使用缓存。

Chrome 发送Cache-Control: max-age=0,但其他一些浏览器发送Cache-Control: no-cache。您可能希望在您不认识的任何缓存控制标头上使缓存过期。

甚至:

if any(i.lower().startswith('cache-control:') for i in self.headers): #...
于 2014-06-01T18:02:01.360 回答
0

我会看看ETags 和条件缓存验证请求

如果浏览器发送一个If-None-Match标题,他们有一个缓存副本,并想看看他们是否可以重用它。而不是发送 304 Not Modified 而是清除缓存,生成完整的 200 OK 响应并设置新的 ETag 标头。

于 2014-06-01T17:54:55.183 回答