gpt4 book ai didi

google-chrome - 当我定义HTTP "Expires" header 时,为什么Google Chrome浏览器不使用缓存的页面

转载 作者:行者123 更新时间:2023-12-04 04:07:59 26 4
gpt4 key购买 nike

我发送的格式正确的HTTP响应“已过期” header (例如“Wed,2011年5月04日09:29:09 GMT”)中带有通过https://[host]:{port}/提供的页面(其中[host]为J2EE应用程序使用response.setDateHeader("Expires", {milliseconds a few seconds in the future} )从localhost)。

在我的页面上,我具有指向同一页面的链接。当我从Firefox(4)或IE(8)中单击此链接时,页面将从缓存中重新加载,直到达到过期时间。过期时间过后,单击同一链接将导致服务器上的页面加载有新数据。如果我在任何一个提到的浏览器上都按了F5键,则该页面会重新加载服务器中的新数据(Firebug向我显示Cache-Control: max-age=0与请求一起发送了)。

使用Google Chrome浏览器,F5和单击链接都具有相同的效果。该页面总是从服务器上重新加载新数据。

我找不到关于此效果的任何有据可查的解释。

有谁知道为什么在我的情况下,谷歌浏览器不尊重服务器发送的带有页面响应的“过期” header ,因此总是向服务器请求数据?

最佳答案

Chrome 在这方面的工作方式可能引起极大的困惑。似乎按F5或“重新加载此页面”只是阻止chrome服务来自缓存的请求。与在url窗口中按Enter键(使用缓存)相比,这很容易,即使在两种情况下,请求 header (未发送到任何地方)都具有Cache-Control:max-age = 0。

如果按ctrl + F5,则会显示Cache-Control:no-cache。我认为F5和ctrl + F5之间的区别是,两者都将导致请求发送到服务器,但是在ctrl + F5的情况下,服务器应该知道不响应且未修改304。

关于google-chrome - 当我定义HTTP "Expires" header 时,为什么Google Chrome浏览器不使用缓存的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com