19

After reading about redirects, it seems in the majority of cases I should use a 303 see here. So I was wondering if all browsers will support a 303 response, for both normal requests and ajax requests?

Tomasz Nurkiewicz
  • 334,321
  • 69
  • 703
  • 674
slashnick
  • 26,167
  • 10
  • 55
  • 67

2 Answers2

13

303 See Other was standardized as part of HTTP/1.1 which was released in 1999. Essentially all browsers still in use support HTTP/1.1.

Common browsers:

  • Chrome (all versions)
  • Firefox (all versions)
  • IE 4+
  • Opera 4+
  • Safari (all versions)

Other browsers:

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

References

Chrome

According to HTTP Methods and Redirect Status Codes, Chrome 13+ supports 303 See Other.

Due to Chrome being released in 2008 and using WebKit (originally), it almost definitely has always supported HTTP/1.1. NOTE: This is an unsubstantiated claim, but I cannot find anything to the contrary.

Firefox

According to HTTP Methods and Redirect Status Codes, Firefox 6+ supports 303 See Other.

Which browsers can handle Content-Encoding: gzip (found by David Z) indicates HTTP/1.1 is supported by Netscape 6.2+ (Mozilla 0.9.4+) which is the precursor to all Firefox versions.

Internet Explorer

According to HTTP Methods and Redirect Status Codes, IE 6+ supports 303 See Other.

Django #13277 (mentioned by oDDsKooL) claims IE 4+ is supported, but IE 5-6 have buggy implementations. Upon futher reading, is appears that IE 6 redirection works fine, but displaying a custom error message is buggy.

Which browsers can handle Content-Encoding: gzip (found by David Z) indicates IE 4+ supports HTTP/1.1.

Opera

According to HTTP Methods and Redirect Status Codes, Opera 11.5+ supports 303 See Other.

Which browsers can handle Content-Encoding: gzip (found by David Z) indicates Opera 4+ supports HTTP/1.1.

Safari

According to HTTP Methods and Redirect Status Codes, Safari 5.1+ supports 303 See Other.

Due to Safari using WebKit which was forked from KHTML in 2001, I assume Safari has always supported HTTP/1.1. NOTE: This is an unsubstantiated claim, but I cannot find anything to the contrary.

Community
  • 1
  • 1
Uyghur Lives Matter
  • 18,820
  • 42
  • 108
  • 144
-7

All browsers support 303 redirection, it is a HTTP standard and all browsers identify 303 redirection.

But I would not recommend to use 303 redirection(generally used for old CGI scripts responses), since it is not identified by Search Engines

302 is temporary redirection. and we should avoid it.

You should always use 301 redirection(Moved Permanently)

Rajesh Pantula
  • 10,061
  • 9
  • 43
  • 52
  • 5
    303 should be used when you do a PRG pattern (see wikipedia), that is when you do a POST and then want to redirect user to a GET page so he won't do a second POST by accident when refreshing the page. – Krzysztof Krasoń May 26 '12 at 11:52
  • "All browsers support 303 redirection" : this statement seems a bit too optimistic ? what about old versions of IE for instance ? what about mobile browsers ? – oDDsKooL Jul 25 '12 at 08:50
  • 1
    this django page suggests IE6/7 have bugs in their implementation of 303: https://code.djangoproject.com/ticket/13277 – oDDsKooL Jul 25 '12 at 08:58
  • 3
    "You should always use 301" is an atrociously inaccurate statement. It's the last thing you want in response to a POST request, or in any other case where the redirected URL should not be cached by browsers and proxies. – Quick Joe Smith Apr 01 '14 at 08:20