【发布时间】:2016-01-02 12:09:00
【问题描述】:
在频繁使用POST 请求的商业Web 应用程序中,需要执行history.go(-1) 来触发返回导航。正如其他人所经历的那样,我正在 -
确认重新提交表单 ERR_CACHE_MISS
Chrome 中的错误。但是,在 Firefox 中同样可以正常工作(这不是重复的,请继续阅读)。
确实,使用POST 请求渲染内容是导致上述问题的原因(没有使用 Post/Redirect/Get 设计模式)。
但是,在寻找替代解决方案时,发现在某些网站/应用程序中可以导航回 Chrome(缓存命中),而在某些网站中它会失败。我已经检查了来自成功站点的所有HTTP headers,看起来HTTP headers 没有任何区别。
这可能是浏览器根据 Web 应用程序使用的 SSL 证书做出不同的行为,或者返回导航在某些网站上工作的原因是什么?
示例工作网络应用程序:
http://gmail.com/ - 输入一些随机电子邮件。点击下一步。多次输入错误密码,使用浏览器返回按钮返回。
https://support.hostgator.com/ - 在搜索框中输入一些随机文本(多做几次)。使用浏览器后退按钮返回。
在失败的 Web 应用程序中使用的 POST 请求:
POST /post3.jsp HTTP/1.1
Host: 192.168.1.111
Connection: keep-alive
Content-Length: 18
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://192.168.1.111
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://192.168.1.111/post2.jsp
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
【问题讨论】:
标签: google-chrome http firefox web-applications https