后退按钮(浏览器行为)
Posted
技术标签:
【中文标题】后退按钮(浏览器行为)【英文标题】:Back Button (Browser Behavior) 【发布时间】:2010-12-13 01:38:42 【问题描述】:在网络浏览器中按下后退按钮时,默认操作是发送获取请求还是从浏览器历史记录中提供服务?
如果特定于浏览器,Internet Explorer 和 Firefox 的默认操作是什么?
【问题讨论】:
好问题,添加评论以记住阅读答案。 【参考方案1】:非正式回答
如果上一页是GET request,则通常会从浏览器的缓存中获取该页面,除非页面上的缓存时间已过期(此过期时间由网页管理员设置),或其他因素导致浏览器认为信息不够新鲜。
如果上一页是POST request,浏览器通常会询问您是否要重新发送信息,然后从服务器获取页面。
正式答复
这在浏览器应实现的HTTP Protocol specification 中的Section 13 中进行了介绍。
具体而言,13.10 规定:
某些 HTTP 方法必须导致缓存 使实体无效。这是 该实体所指的实体 请求 URI,或按位置或 Content-Location 标头(如果存在)。 这些方法是:
- PUT - DELETE - POST
可能会缓存其他类型的请求(例如 GET)。如果您想了解详细信息,请通读完整规范,但规范的设置方式允许浏览器尽可能多地使用其缓存。
【讨论】:
【参考方案2】:我只是为了好玩而在 Chrome 和 Firefox 中测试了这个
当我在 Google 搜索页面上的 Chrome 中按回时,没有请求发生。浏览器从缓存中拉取。
在 Firefox 中,我实际上从 Google 获得了 204 No Content
,路径为 http://clients1.google.ca/generate_204。
我使用Charles 代理发现了这个,所以它不科学:)
【讨论】:
以上是关于后退按钮(浏览器行为)的主要内容,如果未能解决你的问题,请参考以下文章