Web浏览器何时发送If-Modified-Since?

时间:2011-08-19 11:32:55

标签: python browser flask if-modified-since

我通过python烧瓶提供动态创建的recent.rss,这自然就是通过200 OK发送的。我打算通过在未来一周设置标题Expires并检查浏览器是否发送If-Modified-Since来解决此问题。

如果是这样(在比较日期之后)我会return nothing, 304而不是return response,但根据Firebug和request.environ,我的浏览器永远不会发送If-Modified-Since来获取该资源

我知道我可以将数据保存到文件中,并使用网络服务器将其作为真正的静态文件提供,但我最终可能需要通过WSGI提供静态文件,即使不是,我也想知道为什么这不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:11)

RFC 2616 HTTP/1.114.25 If-Modified-Since中有此注释:

  

处理If-Modified-Since标题字段时,有些         服务器将使用精确的日期比较功能,而不是         小于功能,用于决定是否发送304(不是         修改)响应。为了在缓存验证中发送If-Modified-Since标头字段时获得最佳结果,客户端是         建议尽可能使用先前Last-Modified标题字段中收到的确切日期字符串。

这表示您希望客户发送Last-Modified时应发送If-Modified-Since标题。