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?
-
It depends on what you want to achieve. 303 has different semantics compared to 301, 302, and 307. – Julian Reschke Jan 06 '12 at 19:13
-
right. see http://en.wikipedia.org/wiki/HTTP_307#3xx_Redirection for a list of possible options. – oDDsKooL Jul 25 '12 at 08:51
2 Answers
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.
- HTTP 303 and IE
- How IE responses to different HTTP status codes
- How IE Handles HTTP Status Codes
- Description of Hypertext Transport Protocol Error Messages
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.

- 1
- 1

- 18,820
- 42
- 108
- 144
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)

- 10,061
- 9
- 43
- 52
-
5303 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
-
1this 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