6

大多数现代浏览器都接受307 和 308 重定向 ( https://www.rfc-editor.org/rfc/rfc7538 )。

然而,在谷歌搜索很多时,我无法找到支持 307/308 重定向的浏览器版本列表。许多帖子都喜欢:HTTP 状态码 308 是怎么回事?只需询问是否支持 308 重定向。

我知道一些较旧的浏览器不支持 307/308 重定向(https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308),但尚不清楚哪个浏览器版本不'吨。

所以我的问题是,哪些浏览器版本支持 307/308 重定向?

旧版浏览器如何处理此状态码?他们只是失败了吗?

4

3 回答 3

9

截至 2018 年 2 月 20 日,由于 Windows 7 和 8.1 上缺乏对 IE 11 的支持,甚至并非所有现代/受支持的浏览器都支持它:

  • 失败- Windows 7 上的 IE 11(版本 11.0.9600.18893)。在站点中使用 308 时,浏览器似乎挂起并且不加载任何内容。[编辑] 截至 2018 年 7 月 25 日,这仍然失败(版本 11.0.9600.19035) - 检查以防万一,你知道,MS 决定帮助开发者的世界。
  • 通过- Windows 10 上的 IE 11(版本 11.786.15063.0)
  • 通过- Windows 10 上的 Edge(版本 40.15063.674.0)
  • 通过- Windows 7 和 Mac OS 11.6 上的 Chrome(版本 63.0.3239.132 和 63.0.32.132)
  • 通过- Mac OS 11.6 上的 Opera(版本 50.0.2762.67)
  • 通过- Firefox(版本 54.0.4 和 47.0.2)分别在 Mac OS 11.6 和 Windows 7 上
  • 通过- Mac OS 11.6 上的 Safari(版本 11.0.3)

您可以在此处测试您的浏览器是否支持 308 重定向:http ://webdbg.com/test/308/

建议使用 301 或 307 作为当前的解决方案,直到 IE 和/或 Windows 7& 8.1-死于可怕而痛苦的死亡(因为微软不打算在 Windows 7/8.1 上为 IE 添加 308 支持)。

[编辑 2020 年 1 月 29 日] 因此,对 Windows 7 的官方支持已于本月初结束(准确地说是 1 月 14 日),现在强烈鼓励该平台上的用户升级到 Win10,因此预计使用统计数据会急剧下降。

于 2018-02-19T21:14:36.633 回答
0

当前所有浏览器都支持 308s (AFAIU)。

请参阅https://greenbytes.de/tech/tc/httpredirects

于 2017-03-09T19:46:47.800 回答
-4

308 重定向是在 HTTP/2 之前引入的。所以理论上所有支持 HTTP/2 的浏览器都支持 308 重定向,并且可以通过检测 HTTP/2 或更好的使用来检测兼容性。显然,这仅在您的 Web 服务器支持 HTTP/2 并且您不在 CDN 后面时才有效。

所以你应该做的是检测服务器协议。如果使用的是 HTTP/2 或更高版本,您可以使用 308 重定向并相信它会按预期工作。否则,请使用 307 重定向,该重定向自 1999 年左右就出现了,并且在所有现代浏览器中都受支持。实际上,当请求方法为 POST 时,308 和 307 的处理方式相同,因为在这种情况下两者都没有被缓存。

如果这还不够好,我建议在网页正文中包含一个表单,该表单可用于在新位置重新提交提交的 POST 变量。如果无法识别 307/308 响应代码,将向用户显示表单,并且可以手动完成重定向。请参阅 RFC 2616:

临时 URI 应该由响应中的 Location 字段给出。除非请求方法是 HEAD,否则响应的实体应该包含一个简短的超文本注释,其中包含指向新 URI 的超链接,因为许多 HTTP/1.1 之前的用户代理不理解 307 状态。因此,注释应该包含用户在新 URI 上重复原始请求所需的信息。

https://www.rfc-editor.org/rfc/rfc2616#page-65

于 2019-06-11T03:42:18.490 回答