In theory, you (and the whole world) should use 303, as you already noted. But also most browsers respond to 302 as if they should respond to 303. Thus, in general, it does not seem to matter if you send 302 or 303. There is an interesting note in the link that you specified for specification 303:
Note. Many user agents prior to HTTP / 1.1 do not understand the status of 303. When interacting with such clients is a concern, the status code 302 can be used instead, as most user agents respond to the response 302, as described here for 303.
It’s important to note the pre- HTP / 1.1 user agents, so maybe this was important some time ago, but I don’t think so.
So, in general, it is up to you (I could bet that you want browsers to never change their behavior against 302 statuses, for fear of hacking the Internet for their users).
Carlos Campderrós Feb 26 '11 at 19:14 2011-02-26 19:14
source share