The 3xx HTTP status codes are a class of status codes that indicate that further action by you may be required to get to the destination URL. Sometimes the web client may take some action on your behalf if the consecutive request on the target URL is characterized by HEAD or GET. In the case where 5 consecutive URI's are all unavailable, the process is halted by most user agents to prevent a vicious cycle of redirection.
Redirect status codes are important to you because locations on the Internet are always changing, and sometimes the actions you take on the Internet may require a redirect to a new location. The request that your user agent makes may also require to return to the original URI after completing a certain step in the process. Using such codes, the web server and the user agent communicate to take you to other locations, either automatically - in mitigating errors or relocations, or basically - in responding to actionable requests.
300 - Multiple Choices
This provides you with a list of options that you need to take when your requested URL is unavailable. Sometimes when the response is accompanied by a HEAD request, the browser or user agent may respond automatically and direct it to the most likely outcome. The relevance is normally decided when there is no GET request, so the first URI on the list takes priority.
301 - Moved Permanently
This indicates a permanent reassignment to another URL. You will from now on be automatically redirected to the right location should your client agent have capabilities for link editing. Sometimes your browser will not affirm the redirection until confirmed by you. This code comes with a GET or HEAD request to take the user agent to the new URI.
302 - Found
This status indicator refers to a temporary relocation of a URL due to some file changes on the web server, sometimes containing a reference to the new URL that you might redirect to. The server may redirect you to the new location automatically using a GET request. This response however contradicts status indicator 303, which is the redirection status code when the location is not available. While this has been accepted as 'generally correct' behavior, status indicator 307 has since been introduced to correct that anomaly.
303 - See Other
This is a redirection to a new URL when the target URL is temporarily unavailable. This indicator responds with a GET request that takes you to the URL to where the web files have been taken. It is also used to respond to a real world entity URI, where, should the resource representing the profile of a real person, for instance, be moved to a different location, the web server would not respond with a status code or 'found' or 'OK', since it cannot assure you that the relocated person is the actual profile that has been located, so the 303 status response is relevant for use in such a scenario.
304 - Not Modified
This is a conditional request to GET should the targeted URL not available at that time. Should the URL be available, you will access the target location. It is a fail safe approach to mirrored locations, especially when the web server holds critical processes which have to be live at all times.
305 - Use Proxy
This request is for the client agent or browser to direct all the traffic through a proxy. The request is presented on the header from the target location. For the purposes of collecting data for security or other reasons, a proxy redirect gives the web server the upper hand in not only controlling unwarranted requests, but can also provide services like landing pages and restricting privileged information.
306 - Switch Proxy
This code is no longer in use, but was previously used to redirect the client agent to a different proxy on subsequent requests.
307 - Temporary Redirect
Similar to 302, the code indicates that the resource being requested has temporarily been moved, and your browser should use a different request in getting to the new URL.
308 - Permanent Redirect
This code indicates that all future requests by your client agent should be sent using a different URI. Unlike 301 or 302 codes, this will not allow a change in the HTTP Method, meaning that whichever service you were requesting to the unavailable URI, the redirect will replicate the request for the operation to be seamless.