Forwarding using HTTP
The first is through what’s called an HTTP status code. We’ll spare you the technical details of how HTTP (it’s not just the beginning of a web address but a specific protocol for how your browser and a server communicate with one another) works, but suffice to say that when your web browser asks for something from a server—your website for example—the server sends a response code that tells your browser the status of the request.
For example, a response code of 200 means “OK,” or “successful,” and comes in response to any successful request. It’s the code you get when your browser loads the webpage you requested. The most famous response code is 404, which means “Not Found.”
Permanent and Temporary Web Forwarding uses HTTP status codes in the 3xx range, specifically 301 for Permanent and 302 for Temporary. When you go to a webpage that’s redirected to another URL, instead of getting 200 message, your browser gets a 301 or a 302 message, along with the URL the page is forwarded to. Then your browser will load the webpage sent in the 301 or 301 HTTP response.
The difference between 301 and 302 is that since 301 is “Permanent,” the browser is told it can cache this response so that next time when it goes looking for the forwarded webpage, it already knows where to find it. A 302 is “Temporary,” though, so it’s not by default cacheable.
Another difference is that search engines and web crawlers will index a Permanent redirection but they won’t for Temporary redirections.
Permanent redirections are just that—permanent, and they imply that in the future, a new URL should be used and the old one should not while temporary redirections imply that you shouldn’t make updates to any records of the URL, the redirection is only temporary.