Бывает ситуация, когда сервер в ответ на Ваши действия показывает в браузере непонятные страницы с цифрами. Зачем он это делает и что он хочет нам этим сказать — тема сегодняшнего поста. Мы будем говорить о кодах HTTP.
Вот что говорит об этом Википедия:
Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трех арабских цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа
Коды классифицируются:
- 2хх (успешно) — перечень кодов статуса HTTP, использующихся при успешном запросе;
- 3хх (перенаправление) — перечень кодов статуса HTTP, использующихся при перенаправлении запроса;
- 4хх (ошибки клиента) — содержит перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок в клиентском запросе (например, ссылку на не существующую страницу дает нам ошибку 404)
- 5хх (ошибки сервера) — Перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок сервера
Таким образом, ответ сервера означает, что мы что-то делаем хорошо или наоборот, где-то необходимо что-то исправить. Для того, чтобы знать, что означает тот или иной код, я собрал все данные в табличный вид, чтобы Вам удобно было найти и опознать.
Коды 2хх
Код | Ошибка | Описание |
200 | Хорошо | Успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. |
201 | Транзакция прошла успешно | В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ 202. |
202 | Принято | Запрос был принят на обработку, но обработка не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс. |
203 | Неавторитетная информация | Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. |
204 | Нет содержимого | Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. |
205 | Сбросить содержимое | Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно. |
206 | Частичное содержимое | Сервер удачно выполнил частичный GET возвратив только часть. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию. |
207 | Многостатусный | Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus. |
226 | IM использовано | Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров. |
КОДЫ 3ХХ
Код | Ошибка | Описание |
300 | Множественный выбор | Затребованный URL обозначает более одного ресурса, и робот не смог однозначно определить, к какой странице URL относится (получен код 300 Multiple Choices). |
Исправьте заголовки или укажите ресурс правильно, и тогда робот сможет проиндексировать страницу. | ||
301 | Ресурс перемещен навсегда | Документ уже не используется сервером, а ссылка перенаправляет на другую страницу (получен код 301 Moved Permanently). |
Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление. | ||
302 | Ресурс временно перемещен | Запрошенный ресурс временно находится под другим адресом (получен код 302 Found). |
Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление. | ||
303 | Смотрите другой ресурс | Запрошенный ресурс находится под другим адресом и его следует запрашивать, используя метод GET (получен код 303 See Other). Если вы хотите, чтобы указанная страница находилась в поиске, она должна отвечать кодом 200. |
304 | Ресурс не изменялся | Получен код 304 Not Modified. Если страница не изменилась с момента последнего обращения робота, рекомендуется выдавать этот код. Это ускорит индексирование и уменьшит трафик. |
305 | Следует использовать прокси | Доступ к затребованному ресурсу может осуществляться только через прокси-сервер, указанный в заголовке Location (получен код 305 Use Proxy). |
307 | Временное перенаправление | Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location (получен код 307 Temporary Redirect). |
КОДЫ 4ХХ
Код | Ошибка | Описание |
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). |
КОДЫ 5ХХ
Код | Ошибка | Описание |
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). |