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

发布于 2024-11-30 07:38:48 字数 445 浏览 1 评论 0 原文

我通过 python Flask 提供动态创建的 recent.rss 服务,自然地,它总是通过 200 OK 发送。我打算通过设置标头 Expires 到未来一周并检查浏览器是否发送 If-Modified-Since 来解决此问题。

如果是这样(比较日期后)我只会返回任何内容,304而不是返回响应,但根据Firebug和request.environ我的浏览器永远不会发送该资源的 If-Modified-Since

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

感谢您的任何帮助。

I'm serving a dynamically created recent.rss via python flask and naturally that way it is always sent via 200 OK. I was going to fix this by setting the header Expires a week into the future and checking if the browser sent If-Modified-Since.

If so (after comparing dates) I would just do return nothing, 304 instead of return response, but according to Firebug and request.environ my browser just never sends If-Modified-Since for that ressource.

I know I could just save the data to a file and serve it as a real static file using a webserver, but I might end up really needing to serve static files via WSGI and even if not I'd like to know why this doesn't work.

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

長街聽風 2024-12-07 07:38:48

RFC 2616 HTTP/1.114.25 If-Modified-Since

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

这表明当您期望/希望客户端发送 If-Modified-Since 时,您应该发送 Last-Modified 标头。

RFC 2616 HTTP/1.1 has this note in 14.25 If-Modified-Since:

When handling an If-Modified-Since header field, some
servers will use an exact date comparison function, rather than a
less-than function, for deciding whether to send a 304 (Not
Modified) response. To get best results when sending an If-Modified-Since header field for cache validation, clients are
advised to use the exact date string received in a previous Last-Modified header field whenever possible.

This indicates that you should send a Last-Modified header when you expect/want the client to send If-Modified-Since.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文