当我提交表格然后按“返回”时,有时会收到“文档已过期”的消息而不是最后一页。
我以前经常会收到以下烦人的消息框(单击“再试一次”后就会出现):
现在我做知道这是什么意思,以及 Firefox 为什么会显示此消息。但是,我只想看到上次查看的页面 - 就像一秒钟前显示的一样。没有弹出窗口,也没有重新加载以反映服务器的新状态。(也许一个小信息栏会很好,但对我来说没有必要)。
用例:假设我登录了一个我经常使用的网站,按下 Enter 键后,我在眼角余光中看到了登录页面上的新闻标题。我想点击返回并查看我一秒钟前看到的确切页面,以点击标题。如果我查看登录后的首页,或者只是重新加载它,我可能会得到不同的(随机)标题。
那么,如何才能彻底摆脱“文档已过期”和“确认”消息,并让 Firefox 在提交 POST 表单后仅显示缓存的最后位置? about:config
设置、扩展、代理技巧都很好。
答案1
Firefox 引擎不会(或不应该)缓存文档的最后状态,如果服务器允许缓存,则只会缓存 HTML 文档本身。Opera 曾经(或可能仍然)拥有此功能,但它给网站运营商带来了许多安全问题。
RFC 2616 规定:
13.4 响应可缓存性
除非受到缓存控制(第 14.9 节)指令的特别约束,否则缓存系统可以始终将成功响应(参见第 13.8 节)存储为缓存条目,如果它是新的,则可以无需验证就返回它,并且可以在验证成功后返回它。
如今,许多网站在服务器生成的所有响应中都使用缓存控制标头来避免缓存问题。即使您让 Firefox 以以前的状态向您提供文档,在大多数网站上,它也不会或不应该起作用。最安全、最面向未来的解决方案是要求网站所有者正确编写其网站代码。
答案2
要删除所有这些消息,请将以下 PHP 行添加到所有脚本的开头:
header("到期时间:2000 年 1 月 1 日星期六 00:00:00 GMT"); header("上次修改时间:".gmdate("D, d MYH:i:s")。" GMT"); header("缓存控制:后检查 = 0,预检查 = 0",false); session_cache_limiter("必须重新验证");
答案3
答案就在https://support.mozilla.org/fr/questions/1010942:只需检查工具->选项->覆盖自动缓存管理。