Код состояния HTTP (англ. HTTP status code) является частью первой строки ответа сервера. Он представляет из себя целое число из трех арабских цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа. Пример:
403 Access allowed only for registered users
Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и все они описаны в соответствующих документах RFC. Введение новых кодов должно производится только после согласования с IETF. Клиент может не знать все коды состояния, но он обязан отреагировать в соответствии с классом кода.
В настоящее время выделено пять классов кодов состояния:
1xx: Informational (Информационный) - запрос получен и понят, а обработка продолжается.
2xx: Success (Успешно) - запрос был успешно получен, понят и обработан.
3xx: Redirection (Перенаправление) - для выполнения запроса должны быть предприняты дальнейшие действия.
4xx: Client Error (Ошибка клиента) - запрос имеет плохой синтаксис или не может быть выполнен.
5xx: Server Error (Ошибка сервера) - сервер не в состоянии выполнить допустимый запрос.
Ниже представлены коды ответа из реестра кодов состояния IANA.
Коды 3xx (перенаправление)
Перечень кодов статуса HTTP, использующихся при перенаправлении запроса (коды 3xx)
300 Множественный выбор
Затребованный URL обозначает более одного ресурса, и робот не смог однозначно определить, к какой странице URL относится (получен код 300 Multiple Choices).
Исправьте заголовки или укажите ресурс правильно, и тогда робот сможет проиндексировать страницу.
301 Ресурс перемещен навсегда
Документ уже не используется сервером, а ссылка перенаправляет на другую страницу (получен код 301 Moved Permanently).
Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.
302 Ресурс временно перемещен
Запрошенный ресурс временно находится под другим адресом (получен код 302 Moved Temporarily).
Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.
303 Смотрите другой ресурс
Запрошенный ресурс находится под другим адресом и его следует запрашивать, используя метод GET (получен код 303 See Other). Если вы хотите, чтобы указанная страница находилась в поиске, она должна отвечать кодом 200.
304 Ресурс не изменялся
Получен код 304 Not Modified. Если страница не изменилась с момента последнего обращения робота, рекомендуется выдавать этот код. Это ускорит индексацию и уменьшит трафик.
305 Следует использовать прокси
Доступ к затребованному ресурсу может осуществляться только через прокси-сервер, указанный в заголовке Location (получен код 305 Use Proxy).
307 Временное перенаправление
Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location (получен код 307 Temporary Redirect).
Коды 4xx (ошибка клиента)
Содержит перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок в клиентском запросе (коды 4xx).
400 Неверный запрос
Запрос не может быть понят сервером из-за некорректного синтаксиса (получен код 400 Bad Request).
401 Неавторизованный запрос
Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем (получен код 401 Unauthorized).
402 Необходима оплата за запрос
Внутренняя ошибка или ошибка конфигурации сервера (получен код 402 Payment Required).
403 Доступ к ресурсу запрещен
Доступ к документу запрещен (получен код 403 Forbidden). Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.
404 Ресурс не найден
Документ не существует (получен код 404 Not Found). Если вы удалили какой-то раздел сайта, можно с помощью robots.txt запретить роботу обращаться к нему. Если такой страницы на сайте никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш сайт.
405 Недопустимый метод
Метод, определенный в строке запроса (Request-Line), не дозволено применять для указанного ресурса, поэтому робот не смог его проиндексировать (получен код 405 Method Not Allowed).
406 Неприемлемый запрос
Нужный документ существует, но не в том формате (язык или кодировка не поддерживаются роботом). Получен код 406 Not Acceptable.
407 Требуется идентификация прокси, файервола
Необходима регистрация на прокси-сервере (получен код 407 Proxy Authentication Required).
408 Время запроса истекло
Сайт не передал полный запрос в течение установленного времени и робот разорвал соединение (получен код 408 Request Timeout).
409 Конфликт
Запрос конфликтует с другим запросом или с конфигурацией сервера (получен код 409 Conflict).
410 Ресурс недоступен
Затребованный ресурс был окончательно удален с сайта (получен код 410 Gone).
411 Необходимо указать длину
Сервер отказывается принимать запрос без определенного заголовка Content-Length (получен код 411 Length Required). Поправьте заголовки на своем сервере;- тогда в следующий раз робот сможет проиндексировать страницу.
412 Сбой при обработке предварительного условия
При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.
413 Тело запроса превышает допустимый размер
Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер (получен код 413 Request Entity Too Large).
414 Недопустимая длина URI запроса
Сервер отказывается обслуживать запрос, потому что запрашиваемый роботом URI (Request-URI) длиннее, чем сервер может интерпретировать (получен код 414 Request-URI Too Long).
415 Неподдерживаемый MIME тип
Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат (получен код 415 Unsupported Media Type).
416 Диапазон не может быть обработан
Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов (получен код 416 Requested Range Not Satisfiable).
417 Сбой при ожидании
Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям (получен код 417 Expectation Failed).
422 Необрабатываемый элемент
Сервер не в состоянии обработать один (или более) элемент запроса (получен код 422 Unprocessable Entity).
423 Заблокировано
Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован (получен код 423 Locked).
424 Неверная зависимость
Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован (получен код 424 Failed Dependency).
426 Требуется обновление
Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом (получен код 426 Upgrade Required).
Коды 5xx (ошибка сервера)
Перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок сервера (коды 5xx)
500 Внутренняя ошибка сервера
Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос (получен код 500 Internal Server Error).
501 Метод не поддерживается
Сервер не поддерживает функциональные возможности, требуемые для выполнения запроса (получен код 501 Not Implemented). Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечить его для любого ресурса.
502 Ошибка шлюза
Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос (получен код 502 Bad Gateway).
503 Служба недоступна
Возникла ошибка из-за временной перегрузки или отключения на техническое обслуживание сервера (получен код 503 Service Unavailable).
504 Время прохождения через межсетевой шлюз истекло
Сервер, при работе в качестве внешнего шлюза или прокси-сервера, своевременно не получил отклик от вышестоящего сервера, к которому он обратился, пытаясь выполнить запрос (получен код 504 Gateway Timeout).
505 Версия НТТР не поддерживается
Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, которая используется в сообщении запроса робота (получен код 505 HTTP Version Not Supported).
507 Недостаточно места
Сервер не может обработать запрос из-за недостатка места на диске (получен код 507 Insufficient Storage).
510 Отсутствуют расширения
Сервер не может обработать запрос из-за того, что запрашиваемое расширение не поддерживается (получен код 510 Not Extended).
Источник: yandex.ru, wikipedia.org, adamkoford.com