在网络浏览器中按下后退按钮时,是从浏览器历史记录发送获取请求或服务的默认操作吗?
如果特定于浏览器,那么Internet Explorer和Firefox的默认操作是什么?
答案 0 :(得分:16)
非正式答案
如果上一页是GET request,则通常从浏览器的缓存中提取该页面,除非页面上的缓存时间已过期(此过期时间由网页管理员设置)或其他页面因素导致浏览器认为信息不够新鲜。
如果上一页是POST request,浏览器通常会询问您是否要重新发送信息,并且该页面是从服务器获取的。
正式回答
浏览器应该实现的Section 13 HTTP Protocol specification中介绍了这一点。
具体而言,13.10表示:
某些HTTP方法必须导致缓存 使实体无效。这是 无论是由...提到的实体 请求URI,或由位置或 内容 - 位置标题(如果存在)。 这些方法是:
- PUT - DELETE - POST
可以缓存其他类型的请求(例如GET)。如果您想了解详细信息,请仔细阅读完整规范,但规范的设置方式允许浏览器尽可能多地使用其缓存。
答案 1 :(得分:1)
我刚刚在Chrome和Firefox中测试了这个以获得乐趣
当我在Google搜索页面上按回Chrome时,没有请求发生。浏览器从缓存中拉出来。
在Firefox中,我实际上从Google获得路径为http://clients1.google.ca/generate_204的204 No Content
。
我使用Charles代理找到了这个,所以它没有什么科学性:)