301 is the HTTP status code for a permanent redirect.
The 301 status code is used to indicate that the page or other resource formerly available at the redirected URL has been permanently moved to another URL, and that the new URL should be used to access it in the future. This is in contrast with temporary redirects (status codes 302, 303 and 307), which are used to indicate that, while the content may currently be found at the target URL, the original URL should still be used to request it in the future.
In particular, web search engines typically treat a 301 redirect as an indication that the redirected URL should be dropped from their index and replaced with the target URL, with any "PageRank" or other such relevance metrics of the original URL transferred to the target.
A 301 (permanent) redirect is typically cached by the browser by default.
A 301 redirect does not preserve the request method by which the original request was made. The redirected request is always a GET request. For example, if the original request was a POST request (eg. a form submission) then the redirected request will be changed to GET and any POST-data will be lost. To preserve the request method consider using a 308 response code instead.
See also: 302-redirect