Расшифровка кодов состояния HTTP: ошибки и решения

Обычные посетители веб-сайтов сначала обращают внимание на качественное содержание страницы, в то время как поисковые боты сканируют серверные ответы.

Сегодня мы изучим методы проверки кода как для отдельных страниц, так и для всех страниц сразу. Также мы рассмотрим различные коды ответов сервера и расшифруем их значения.

Расшифровка кодов состояния HTTP: ошибки и решения

Основные моменты

Для определения доступности веб-страницы применяется анализ кода состояния HTTP. Фактически это стандартный запрос, который отправляется, когда мы переходим по определенной ссылке на сайте или вводим ее непосредственно в адресную строку браузера. В результате обработки этого запроса сервер автоматически формирует и возвращает трехзначный числовой код.

Этот код ответа позволяет понять, как сайт реагирует на запрос, не только поисковому роботу, но и обычному пользователю. Даже для новичков в веб-мастеринге понимание этого процесса не представляет трудностей.

Сначала давайте разберемся с основными терминами.

  • Клиент – это компьютер, смартфон или другое устройство, подключенное к интернету.
  • Сервер – это конкретный компьютер, на котором хранятся все данные сайта, включая страницы и системные файлы. Сам сайт «проживает» на сервере.

Существует пять классов http-ответов сервера. Класс определяется первой цифрой кода ответа.

  • 5** – это технические ошибки на стороне сервера. Конкретная причина указывается сразу после кода. Иногда код 5** свидетельствует о внутренних сбоях, а иногда – о превышении статической нагрузки на сервере.
  • 4** – указывают на ошибку на стороне пользователя.
  • 3** – указывают на редирект (перенаправление) на другой адрес. Это не считается ошибкой.
  • 2** – указывают на успешную обработку запроса (отсутствие ошибки).
  • 1** – это информационные сообщения, связанные с рабочими процессами (не считаются ошибкой).
http статус

Разбор кодов состояния HTTP

Сфокусируемся на объяснении причин, решений и особенностей наиболее распространенных http-кодов ошибок.

200ые – успешные запросы

  • 200 – Успешный запрос
  • 201 – Успешная завершенная транзакция, создан новый ресурс или документ.
  • 202 – Запрос принят, но еще не завершен. Ожидайте завершения обработки.
  • 203 – Полученные данные не от первоисточника и могут быть устаревшими.
  • 204 – Запрос обработан успешно, но контент отсутствует.
  • 205 – Клиент должен сбросить просмотренный контент.
  • 206 – Ошибка частичного содержимого. Возвращается, когда сервер выполняет лишь часть GET-запроса, как при потоковой загрузке данных.
  • 207 – Выполнено несколько операций, обозначенных в XML формате в строке MultiStatus.
  • 226 – Обработан заголовок IM (Instance Manipulation). Содержимое возвращается для получения информации о ответе вместе с предварительно установленными параметрами.

Особое внимание уделяется http кодам 2xx, которые обозначают успешные запросы. Они указывают на успешную обработку, создание ресурсов или завершенные транзакции. Коды 2xx могут возвращаться в ответ на GET- или POST-запросы, а также в случае запросов диапазонов. Каждый код подразумевает определенные действия по обработке ответа, такие как управление кэшированием и анализ исходящих запросов.

http 200

300ые – запросы на редирект

  • 300 – Не удалось определить точный URL. Этот ответ возникает в случае множественного выбора, когда краулер не может однозначно определить, к какой странице относится ресурс.
  • 301 – Документ был окончательно перемещен на новый URL. Такой ответ следует давать для всех веб-страниц, которые удалены или являются дублями. Временем все эти страницы будут автоматически перенаправляться на целевую веб-страницу, чтобы сохранить позитивные метрики, включая вес URL.
  • 302 – Документ временно перемещен на новый URL. Этот код применим для веб-страниц с временными акциями или распродажами. Это сообщает клиенту, что URI будет учтен в последующих запросах. Страница найдена, но временно перемещена. Она не удаляется из индекса. Если изменение адреса постоянное, рекомендуется использовать коды 303 или 307.
  • 303 – Требуется перенаправить пользователя на другой URL. Этот код используется только с GET-запросами. Желательно применять его, когда нужно перенаправить посетителя на близкородственную, но не идентичную страницу.
  • 304 – Документ не изменялся. Это нестандартный редирект, который помогает краулерам определить, что страница не изменилась с последнего посещения.
  • 305 – Доступ к документу возможен только через прокси.
  • 307 – Документ временно перемещен на другой URL. Применяется, если нужно временно перенаправить пользователя, сохраняя возможность отправки POST-запросов.
http 300

400ые – коды ошибки со стороны клиента

  • 400 – Ошибка синтаксиса. Сервер не может распознать запрос из-за наличия ошибки в его синтаксисе. Проверьте правильность написания отправляемого запроса.
  • 401 – Не авторизован. Код выдается, когда доступ требует аутентификации, например, пароля или регистрации.
  • 403 – Доступ запрещен. Возникает, если пользователь пытается получить доступ к системным файлам (например, robots.txt, .htaccess). Также может произойти при опечатке в URL или если требуется авторизация для доступа к системным файлам.
  • 404 – Страница не найдена. Код указывает на отсутствие ресурса по введенному URL. Разберитесь, почему страница была удалена или перемещена. Если это случайное удаление, просто восстановите ее.
  • 405 – Неподдерживаемый метод. В запросе клиента указан некорректный метод для данного документа. Метод запроса определяет, какое действие необходимо выполнить для ресурса.
  • 406 – Неподдерживаемый формат. Сервер не может вернуть ответ, соответствующий ожидаемому формату. Это может произойти, если поисковый робот не поддерживает кодировку документа или его язык.
  • 407 – Требуется аутентификация прокси или файрвола.
  • 408 – Таймаут запроса. Соединение прервано, так как запрос занял слишком много времени. Попробуйте обновить страницу.
  • 409 – Конфликт. Запрос не может быть выполнен из-за текущего состояния сервера. Это может произойти, например, при операциях с PUT-запросами, когда требуется замена существующего файла.
  • 410 – Ресурс больше не существует по данному URL. Этот код можно использовать, чтобы сообщить о том, что страница удалена окончательно.
  • 411 – Сервер отклоняет запрос из-за отсутствия заголовка Content-Length. Это часто встречается при POST- и PUT-запросах.
  • 412 – Условие не выполнено. Код указывает на ошибку в условных полях HTTP-заголовка, например, If-Match.
  • 413 – Запрос слишком большой. Код выдается, если размер запроса превышает лимит сервера.
  • 414 – URL слишком длинный. Это происходит, если URL имеет чрезмерную длину и сервер не может его обработать.
  • 415 – Неподдерживаемый тип медиа. Текущий тип данных не может быть обработан сервером.
  • 416 – Неправильный диапазон. Код появляется, если в HTTP-заголовке указан некорректный байтовый диапазон.
  • 417 – Ожидался другой результат. Прокси неверно обработал заголовок «Expect: 100-Continue».
  • 422 – Логическая ошибка. Не указывает конкретную причину.
  • 423 – Запрос заблокирован по методу. Может произойти, если ресурс был заблокирован для выбранного HTTP-метода.
  • 424 – Зависимый ресурс заблокирован. Код указывает на блокировку ресурса из-за безопасности.
  • 426 – Неверные поля Upgrade и Connection. Требуется обновление до SSL-протокола.
  • 429 – Слишком много запросов. Возникает, если один пользователь слишком активен за короткий промежуток времени.
  • 451 – Доступ заблокирован судебным решением.
http 400

500ые – коды ошибок сервера

  • 500 – Сервер не может полностью обработать запрос. Этот статусный код выдается, когда возникает непредвиденное условие, препятствующее выполнению запроса. Чаще всего это связано с внутренней ошибкой сервера, возникшей из-за сбоев в его работе. Важно проверить корректность указанных директив в системных файлах, таких как .htaccess. Также следует обратить внимание на возможные ошибки внутри скриптов и их производительность.
  • 501 – Не реализовано. Этот код выдается, когда сервер не может распознать метод запроса. Эта ошибка не может быть исправлена самостоятельно, так как она связана с несовместимостью сервера и требуемого метода.
  • 502 – Ошибка шлюза. Возникает, когда сервер получает некорректный ответ от вышестоящего сервера. Это часто бывает в случае использования прокси или других шлюзовых конфигураций.
  • 503 – Сервис недоступен. Этот статусный код появляется, когда сервер временно не может обработать запрос из-за технических неполадок. Вероятно, сервер находится на обслуживании или перегружен. Чтобы улучшить ситуацию, следует уменьшить количество постоянных запросов к базам данных, проверить наличие профилактических работ и убедиться, что нет ограничений на пропускную способность сервера.
  • 504 – Шлюз не отвечает. Этот код появляется, когда сервер не может получить ответ от вышестоящего сервера в заданный период времени. Это свидетельствует о таймауте и отсутствии ответа. В такой ситуации стоит попробовать обновить страницу. Если это не помогает, можно попробовать очистить DNS-кэш.
  • 505 – Версия HTTP не поддерживается. Этот код появляется, если сервер не поддерживает текущую версию HTTP-протокола.
  • 507 – Недостаточно места на диске. Этот статус указывает на то, что на жестком диске недостаточно места для выполнения запроса.
  • 510 – Не распознано расширение. Этот код появляется, если клиент запросил использование нераспознанного сервером расширения.
http 500

Проверка ответа веб-страницы

Самый удобный метод для проверки ответа веб-страницы заключается в использовании доступных онлайн-сервисов. Например:

Помимо упомянутых выше сервисов, существует также полезный плагин для Google Chrome под названием «HTTP Header Spy«. С его помощью можно легко проверять код ответа сервера как для одной, так и для нескольких страниц одновременно:

HTTP Header Spy

Заключение

HTTP-коды ответов — это универсальная система обозначений, которую понимают как поисковые роботы Google и Яндекс, так и обычные пользователи. Пять классов кодов позволяют сразу определить, где возникла проблема при выполнении HTTP-запроса и какие шаги можно предпринять для её устранения.

Если в данном руководстве не представлен код ответа, это может указывать на использование настроек, специфичных для определенного сервера. Чтобы правильно интерпретировать такой ответ и перевести его на понятный язык, может потребоваться обращение к разработчику этого сервера.

Добавить комментарий