检测浏览器何时点击"刷新"在Python的BaseHTTPServer中

时间:2014-06-01 17:43:56

标签: python basehttpserver

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

2 个答案:

答案 0 :(得分:1)

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

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

甚至:

if any(i.lower().startswith('cache-control:') for i in self.headers): #...

答案 1 :(得分:0)

我要看ETags and conditional cache validation requests

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