哪些浏览器支持HTTP 303响应?

19

阅读有关重定向的文章后,似乎在大多数情况下我应该使用303 参见此处。那么,我想知道所有浏览器是否都支持对普通请求和ajax请求的303响应?


这取决于你想要实现什么。303 与 301、302 和 307 的语义不同。 - Julian Reschke
请参阅http://en.wikipedia.org/wiki/HTTP_307#3xx_Redirection以获取可能选项列表。 - oDDsKooL
2个回答

13

303 See OtherHTTP/1.1的一部分,该协议于1999年发布。目前所有常用浏览器都支持HTTP/1.1

常见浏览器:

  • Chrome(所有版本)
  • Firefox(所有版本)
  • IE 4+
  • Opera 4+
  • Safari(所有版本)

其他浏览器:

  • Lynx 2.6+
  • Mozilla 0.9.4+
  • Netscape 6.2+

参考资料

Chrome

根据HTTP方法和重定向状态码,Chrome 13+支持303 See Other
由于Chrome在2008年发布并使用WebKit(最初),它几乎肯定一直支持HTTP/1.1。注意:这是一个未经证实的说法,但我找不到相反的证据。

Firefox

根据HTTP方法和重定向状态码,Firefox 6+支持303 See Other

哪些浏览器可以处理Content-Encoding: gzip (由David Z发现)指出Netscape 6.2+(Mozilla 0.9.4 +)支持HTTP/1.1,这是所有Firefox版本的前身。

Internet Explorer

根据HTTP方法和重定向状态码,IE 6+支持303 See Other

Django #13277(由oDDsKooL提到)声称支持IE 4+,但IE 5-6的实现存在缺陷。进一步阅读后,发现IE 6重定向正常,但显示自定义错误消息时存在缺陷。

哪些浏览器可以处理Content-Encoding: gzip (由David Z发现)表明IE 4+支持HTTP/1.1

Opera

根据HTTP方法和重定向状态码,Opera 11.5+支持303 See Other哪些浏览器可以处理Content-Encoding: gzip(由David Z发现)显示Opera 4+支持HTTP/1.1

Safari

根据HTTP方法和重定向状态码,Safari 5.1+支持303 See Other
由于Safari使用了从KHTML分叉出来的WebKit,因此我认为Safari一直支持HTTP/1.1。注意:这是一个未经证实的说法,但我找不到相反的证据。

-7

所有浏览器都支持303重定向,这是HTTP标准,所有浏览器都识别303重定向。

但我不建议使用303重定向(通常用于旧CGI脚本响应),因为它不被搜索引擎识别。

302是临时重定向,我们应该避免使用它。

您应该始终使用301重定向(永久移动)。


5
在进行PRG模式(请参阅维基百科)即进行POST并希望将用户重定向到GET页面以避免在刷新页面时意外进行第二次POST时,应使用303状态码。 - Krzysztof Krasoń
“所有浏览器都支持303重定向”:这个说法似乎有点过于乐观了?例如旧版本的IE呢?移动浏览器呢? - oDDsKooL
1
这个 Django 页面表明 IE6/7 在 303 的实现中存在错误:https://code.djangoproject.com/ticket/13277 - oDDsKooL
3
“你应该始终使用301重定向”这句话是极其不准确的说法。在响应POST请求或任何其他不希望被浏览器和代理缓存的重定向URL情况下,这是你最不想要的东西。 - Quick Joe Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接