When you try to access a website the website’s server sends your browser all sorts of information. One part of that is the status code. The status code lets you know the status of your request and offers information in case of a problem.
Here are some of the most important status codes:
“OK” The page is there and can be reached. Everything is fine.
A permanent redirect. You will automatically be redirected to a different page. As this is a permanent redirect the Googlebot will neither analyze nor index the original page anymore. The linkjuice of the original page will be passed on along the redirect.
A temporary redirect. The page you tried to access is temporarily unavailable (due to maintenance, for example) and you will be led to a different page in the meantime. As the redirect should only be temporary the Googlebot will analyze and index the original page. Unlike a 301 redirect, the linkjuice will not be passed on.
“Not Found” The resource you are looking for (a page, imagine, file, etc.) cannot be found. It either doesn’t exist anymore or never existed in the first place (in case of a typo in the URL, for example). This is one of the most common status codes.
Status code 500 stands for Internal Server Error. The requested resource cannot be returned due to a server error. Since this status code is basically a "collective HTTP status code" for all possible, unexpected server errors, it is not very meaningful. But often you get the status code 500 for incorrect entries in the .htaccess file.
This status code is delivered if an error occurred during the transmission of the request from the client to the remote server. The request must be sent again.