Обычные посетители веб-сайтов сначала обращают внимание на качественное содержание страницы, в то время как поисковые боты сканируют серверные ответы.
Сегодня мы изучим методы проверки кода как для отдельных страниц, так и для всех страниц сразу. Также мы рассмотрим различные коды ответов сервера и расшифруем их значения.
Основные моменты
Для определения доступности веб-страницы применяется анализ кода состояния HTTP. Фактически это стандартный запрос, который отправляется, когда мы переходим по определенной ссылке на сайте или вводим ее непосредственно в адресную строку браузера. В результате обработки этого запроса сервер автоматически формирует и возвращает трехзначный числовой код.
Этот код ответа позволяет понять, как сайт реагирует на запрос, не только поисковому роботу, но и обычному пользователю. Даже для новичков в веб-мастеринге понимание этого процесса не представляет трудностей.
Сначала давайте разберемся с основными терминами.
- Клиент – это компьютер, смартфон или другое устройство, подключенное к интернету.
- Сервер – это конкретный компьютер, на котором хранятся все данные сайта, включая страницы и системные файлы. Сам сайт «проживает» на сервере.
Существует пять классов http-ответов сервера. Класс определяется первой цифрой кода ответа.
- 5** – это технические ошибки на стороне сервера. Конкретная причина указывается сразу после кода. Иногда код 5** свидетельствует о внутренних сбоях, а иногда – о превышении статической нагрузки на сервере.
- 4** – указывают на ошибку на стороне пользователя.
- 3** – указывают на редирект (перенаправление) на другой адрес. Это не считается ошибкой.
- 2** – указывают на успешную обработку запроса (отсутствие ошибки).
- 1** – это информационные сообщения, связанные с рабочими процессами (не считаются ошибкой).
Разбор кодов состояния HTTP
Сфокусируемся на объяснении причин, решений и особенностей наиболее распространенных http-кодов ошибок.
200ые – успешные запросы
- 200 – Успешный запрос
- 201 – Успешная завершенная транзакция, создан новый ресурс или документ.
- 202 – Запрос принят, но еще не завершен. Ожидайте завершения обработки.
- 203 – Полученные данные не от первоисточника и могут быть устаревшими.
- 204 – Запрос обработан успешно, но контент отсутствует.
- 205 – Клиент должен сбросить просмотренный контент.
- 206 – Ошибка частичного содержимого. Возвращается, когда сервер выполняет лишь часть GET-запроса, как при потоковой загрузке данных.
- 207 – Выполнено несколько операций, обозначенных в XML формате в строке MultiStatus.
- 226 – Обработан заголовок IM (Instance Manipulation). Содержимое возвращается для получения информации о ответе вместе с предварительно установленными параметрами.
Особое внимание уделяется http кодам 2xx, которые обозначают успешные запросы. Они указывают на успешную обработку, создание ресурсов или завершенные транзакции. Коды 2xx могут возвращаться в ответ на GET- или POST-запросы, а также в случае запросов диапазонов. Каждый код подразумевает определенные действия по обработке ответа, такие как управление кэшированием и анализ исходящих запросов.
300ые – запросы на редирект
- 300 – Не удалось определить точный URL. Этот ответ возникает в случае множественного выбора, когда краулер не может однозначно определить, к какой странице относится ресурс.
- 301 – Документ был окончательно перемещен на новый URL. Такой ответ следует давать для всех веб-страниц, которые удалены или являются дублями. Временем все эти страницы будут автоматически перенаправляться на целевую веб-страницу, чтобы сохранить позитивные метрики, включая вес URL.
- 302 – Документ временно перемещен на новый URL. Этот код применим для веб-страниц с временными акциями или распродажами. Это сообщает клиенту, что URI будет учтен в последующих запросах. Страница найдена, но временно перемещена. Она не удаляется из индекса. Если изменение адреса постоянное, рекомендуется использовать коды 303 или 307.
- 303 – Требуется перенаправить пользователя на другой URL. Этот код используется только с GET-запросами. Желательно применять его, когда нужно перенаправить посетителя на близкородственную, но не идентичную страницу.
- 304 – Документ не изменялся. Это нестандартный редирект, который помогает краулерам определить, что страница не изменилась с последнего посещения.
- 305 – Доступ к документу возможен только через прокси.
- 307 – Документ временно перемещен на другой URL. Применяется, если нужно временно перенаправить пользователя, сохраняя возможность отправки POST-запросов.
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 – Доступ заблокирован судебным решением.
500ые – коды ошибок сервера
- 500 – Сервер не может полностью обработать запрос. Этот статусный код выдается, когда возникает непредвиденное условие, препятствующее выполнению запроса. Чаще всего это связано с внутренней ошибкой сервера, возникшей из-за сбоев в его работе. Важно проверить корректность указанных директив в системных файлах, таких как .htaccess. Также следует обратить внимание на возможные ошибки внутри скриптов и их производительность.
- 501 – Не реализовано. Этот код выдается, когда сервер не может распознать метод запроса. Эта ошибка не может быть исправлена самостоятельно, так как она связана с несовместимостью сервера и требуемого метода.
- 502 – Ошибка шлюза. Возникает, когда сервер получает некорректный ответ от вышестоящего сервера. Это часто бывает в случае использования прокси или других шлюзовых конфигураций.
- 503 – Сервис недоступен. Этот статусный код появляется, когда сервер временно не может обработать запрос из-за технических неполадок. Вероятно, сервер находится на обслуживании или перегружен. Чтобы улучшить ситуацию, следует уменьшить количество постоянных запросов к базам данных, проверить наличие профилактических работ и убедиться, что нет ограничений на пропускную способность сервера.
- 504 – Шлюз не отвечает. Этот код появляется, когда сервер не может получить ответ от вышестоящего сервера в заданный период времени. Это свидетельствует о таймауте и отсутствии ответа. В такой ситуации стоит попробовать обновить страницу. Если это не помогает, можно попробовать очистить DNS-кэш.
- 505 – Версия HTTP не поддерживается. Этот код появляется, если сервер не поддерживает текущую версию HTTP-протокола.
- 507 – Недостаточно места на диске. Этот статус указывает на то, что на жестком диске недостаточно места для выполнения запроса.
- 510 – Не распознано расширение. Этот код появляется, если клиент запросил использование нераспознанного сервером расширения.
Проверка ответа веб-страницы
Самый удобный метод для проверки ответа веб-страницы заключается в использовании доступных онлайн-сервисов. Например:
Помимо упомянутых выше сервисов, существует также полезный плагин для Google Chrome под названием «HTTP Header Spy«. С его помощью можно легко проверять код ответа сервера как для одной, так и для нескольких страниц одновременно:
Заключение
HTTP-коды ответов — это универсальная система обозначений, которую понимают как поисковые роботы Google и Яндекс, так и обычные пользователи. Пять классов кодов позволяют сразу определить, где возникла проблема при выполнении HTTP-запроса и какие шаги можно предпринять для её устранения.
Если в данном руководстве не представлен код ответа, это может указывать на использование настроек, специфичных для определенного сервера. Чтобы правильно интерпретировать такой ответ и перевести его на понятный язык, может потребоваться обращение к разработчику этого сервера.