【发布时间】:2020-07-18 20:17:05
【问题描述】:
当对 HTML 页面的请求响应 HTTP 302 Found(又名“临时重定向”)时,FireFox 会“就地”加载重定向页面,而不会将最初打开的 URL U 保留在“后退按钮历史记录”中。
302 的一个流行用法(我认为代码的正确用法)似乎是重定向到 /cookieAbsent 页面,提醒用户他们的浏览器不“支持”(也许更有可能用户已禁用) cookie。
这种浏览器行为的后果是,如果用户决定启用 cookie,则重新加载当然只是重新加载 (the server couldn't send you back, reliably, if it wanted to) /cookieAbsent,这不好,并且后退按钮会回到之前的位置打开(通过超链接或键入)原始U。对于301 Moved Permanently(又名“永久重定向”),这对我来说是有意义的,但对于302 来说似乎是不可取的,尤其是像这样使用时。
如果我正在实现一个浏览器 - 或者,也许,希望报告现有浏览器中的错误或功能请求 - 这种行为是通用规范所要求的,还是只是由浏览器来做它认为合适的事情?
【问题讨论】:
-
我不知道这是否是原因,但 302 大多已被弃用,取而代之的是 307。
-
"307和302唯一的区别是307保证重定向请求时方法和body不会改变。302是一些老客户端错误地把方法改成GET :非 GET 方法和 302 的行为在 Web 上是不可预测的,而 307 的行为是可预测的。对于 GET 请求,它们的行为是相同的。 MDN
标签: browser http-status-code-302