好的,所以我得到了浏览器不应该混淆历史存储和网络缓存的规则:点击返回不应该向服务器发送请求。我也知道浏览器制造商拥有打破这条规则的诗意许可。
我没有得到以下内容(请留在我这里)......
OK:用 HTTP 浏览我们的网站,历史按钮没有向服务器发送请求。伟大的!行为符合预期。
NOK:在 HTTPS 模式下浏览同一站点上的历史记录时,Chrome 运行良好,但 IE9/10 和 FF 却没有。他们会将 HTML 页面的请求发送到服务器,然后正确地使用存储来存储静态文件。为什么有区别?
因此,经过一番摸索和测试后,我发现Pragma:no-cache
我们发送的响应中存在标头是造成这种行为的原因。删除标题后,这本来就不应该存在,IE 和 FF 在 HTTPS 中使用历史按钮时表现良好 - 不再发送请求。
现在,现代浏览器应该忽略并仅在请求中使用的标头的存在怎么会导致浏览器历史导航中出现这个奇怪的问题?