301 Permanent Redirect

Translation: this dude doesn't live here anymore -- he has moved and now lives over at that address. He won't come back. Just sod off, will you?!

Theory: the server communicates that the document at this address has permanently moved. The status of this communication shows that references to the old address should be deleted and updated to the new address.

Use:

when you want to delete a page, use the 301 to forward it to the next logical location

When you want to make one version of a document or address unavailable in favor of the other, 301 the former to the latter.

302 Found (was: temporary redirect)

Translation: yeah, Bob lives here but he has stepped out for a moment -- You can find him next door at the coffee shop or wait here as he's bound to come back sooner or later.

Theory: now; the document was found but for the moment it is somewhere else. It was for a different technical use but because so many browsers didn't listen to how it should be done a new code, 303, had to be created instead.

Use: for you and me? None, really. If you want to use it, call your SEO consultant and explain what you want to do. Then listen and obey.

303 See Other

Translation: I want to make sure you're not going to refresh this page like crazy and resubmit your credit card payment like a zillion times -- so... I'm going to send you to this other place -- Please hold your credit card in your other hand to help prevent any confusion?

Theory: in order to prevent bookmarking or refreshing of pages that hold one-time only data (think a credit card payment form) a server may answer with 303 which means "I have received the information from your form that you've sent using the POST method; to prevent any data accidents, please see my response at this other URL bringing the data over using the GET method just to be really clear."

Use: for you and me? None. For web developers? See under theory.

307 Temporary Redirect

Translation: I want to make sure you're not going to refresh this page like crazy and resubmit your credit card payment like a zillion times -- so... I'm going to send you to this other place -- But this time hold your credit card in the same hand.

Theory: identical to that of 303 with the difference that instead of changing the way the information was submitted from one technique to another, the same technique is used.

Use: for you and me? None. For web developers? Handy stuff.

308 Permanent Redirect (experimental)

Translation: you can repeat what you just said over there And there is no reason to change the way you said it.

Theory: like 307 but with a permanent status.

Use: you guessed it; none for you and me - Potentially tons for web developers.

Why So Many Redirects?

Because browsers started to do something totally different than expected for a 302 redirect the W3C had to:

Sort of abandon 302 and let browsers do whatever they want to do with it; no web developer can be 100% sure of what a browser will do here

Create the 307 Temporary Redirect the way 302 should have been; browsers, go here and if you submitted a form, just do it again the same way

Create the 303 to deal with the other thing browsers do with the 302 which is go here and if you submitted a form, change the method how you did that

The 308 is simply to make the set complete with a permanent version of the redirect that asks of a browser to bring form data along to the new URL using the same method as original.

Which Redirects Are Important To Me?

The 302 because you want to avoid it. If you see it on your site, call someone and figure out why -- And what to do about it

The 301 because this is what you want to use

Can I Check Which Redirect I'm Using?

Yes. This information is transmitted by the server to you. It's not visible on a web page as the information is meant for the browser itself but you can make it visible with a tool like this header checker