Телеграм-канал основателя Checkroi — Вани Буявца

Посмотреть →
Агрегатор онлайн-курсов Checkroi.ru Блог Статьи о программировании Как и зачем проверять коды ответов сервера — подробная инструкция

Как и зачем проверять коды ответов сервера — подробная инструкция

Опубликовано: Страница обновлена: 1227 просмотров Время прочтения: 18 минут

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

Рассказываем, как проверить код ответа сервера и понять его значение. Разбираем частые ошибки HTTP, а также способы их исправления.

Что такое код ответа

Код ответа сервера — это ответ сервера на действия пользователя. Он представляет собой целое трёхзначное число, в котором первая цифра определяет класс состояния. Обычно за кодом ответа находится фраза на английском языке — она объясняет человека причину полученного ответа и подсказывает, что делать дальше.

Пример кода ответа сервераПример кода ответа сервера

Набор кодов состояния — стандарт. Все коды описаны в серии пронумерованных информационных документов интернета RFC. Введение новых кодов возможно, но только после согласования c IETF — Инженерным советом Интернета.

Анализ кода состояния HTTP помогает определить доступность веб-страницы. Технически это выглядит так: когда вы переходите по ссылке на сайте или просто вводите её в поисковой строке браузера, отправляется стандартный запрос. Сервер самостоятельно обрабатывает его, а затем формирует и отдаёт трёхзначный цифровой код

Код делает так, чтобы реакцию сайта на запрос могли понять не только поисковые машины, но и обычные пользователи.

В кодах сервера нет ничего сложного даже для начинающих вебмастеров. Главное — определиться с терминами:

  • Клиент — компьютер или любое другое устройство, подключённое к интернету.
  • Сервер — конкретный компьютер, где хранятся все данные сайта, в том числе страницы и системные файлы.
Телеграм-канал Вани Буявца

Когда важно настроить коды ответов сервера

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

Настраивать HTTP-коды необходимо, если на сайте произошли какие-то изменения. Например, удаление старых страниц, переход на новую CMS или смена URL-адреса. Корректировка кодов нужна, чтобы управлять индексацией поисковыми системами и перенаправлять пользователей с неработающей страницы на рабочую.

Классификация кодов

Ответы сервера — трёхзначные коды с небольшим текстовым пояснением. Чтобы ориентироваться в них было проще, их делят на классы состояния. Основной классификационный признак — первая цифра трёхзначного кода.

Значения первых цифр кода ответа сервера:

  • 1xx — коды информации. Они говорят об успешном получении запроса и начале передачи данных.
  • 2xx — коды успешного выполнения запроса. Сигнализируют о положительном ответе сервера в браузере.
  • 3xx — коды перенаправления. Отвечают за переадресацию, используются для навигации между URL.
  • 4xx — коды HTTP-ошибок на стороне пользователя.
  • 5xx — коды HTTP-ошибок в работе сервера. Точная причина сбоя указывается сразу после кода.

Ниже более подробно разберём классы состояния ответов сервера. Для самых часто встречающихся укажем причины и решения ошибок.

Коды информации

В класс 1xx включены коды, которые информируют о процессе передачи.

100 Continue — сервер удовлетворён начальными сведениями о запросе. Устройство-клиент может продолжать отправку данных.

101 Switching Protocols — сервер учитывает пользовательские требования и переключает протоколы.

102 Processing — запрос поступил на сервер, но для его обработки требуется время. Ответ необходим, чтобы клиент не разорвал соединение из-за превышения лимита ожидания.

103 Early Hints — сервер загружает элементы заголовков, если заголовки полного ответа не могут быть сформированы быстро.

Коды успешного выполнения запроса

Ответы класса 2xx показывают, что клиентский запрос был принят и успешно обработан.

200 OK — успешный запрос. Клиент запросил определённые данные, и они отобразились в заголовке или теле сообщения.

201 Created — завершённая транзакция. В результате выполнения запроса появился новый ресурс. Его адрес указывается в теле ответа или заголовке Location.

202 Accepted — запрос принят, но процесс его обработки не завершился. Клиент может не дожидаться передачи сообщения, так как это займёт много времени.

203 Non-Authoritative Information — информацию для передачи взяли не с исходного сервера, а какого-то другого. Данные могут быть устаревшими.

204 No Content — запрос обработан, но содержимое отсутствует. Сервер обработал запрос, но передал только заголовки без тела сообщения.

205 Reset Content — требуется сбросить содержимое. Клиенту нужно обновить введённые пользователем данные, но саму страницу перезагружать не нужно.

206 Partial Content — ошибка частичного содержимого. Клиент загружал данные в несколько потоков, но сервер выполнил частичный GET-запрос. Чтобы устранить ошибку, почистите кэш и проверьте, как выполняются исходящие запросы.

207 Multi-Status — набор выполненных операций. Сервер передал результаты выполнения нескольких операций — они находятся в XML в строке MultiStatus.

Коды перенаправления

Коды класса 3xx сообщают клиенту, что для завершения операции нужно сделать другой запрос.

300 Multiple Choices — не удалось определить точный URL. Существует несколько вариантов предоставления ресурса по разным характеристикам. Сервер передаёт с сообщением список альтернатив, клиент самостоятельно делает выбор.

301 Moved Permanently — документ перемещён на новый URL. Так отвечают все веб-страницы, которые удалены или являются дублями. Со временем они автоматически присоединяются к целевой странице. Если возникла ошибка: настройте 301-ое перенаправление с устаревшего адреса на актуальный.

302 Moved Temporarily — запрошенный документ временно доступен по другому URL. Корректный ответ сервера, который часто используется для страниц с распродажами и сезонными акциями. Клиент находит нужную страницу, несмотря на то что она перенесена.

303 See Other — документ нужно запросить по другому адресу. Такой код получают исключительно GET-запросом. Обычно его используют, если нужно перенаправить пользователя на близкорелевантную, но не идентичную страницу.

304 Not Modified — документ не изменился с указанного момента. Код — стандартный редирект. Помогает поисковым роботам находить страницы, которые не изменились с последнего визита пользователя.

305 Use Proxy — доступ к запрашиваемому ресурсу возможен только через прокси-сервер.

307 Temporary Redirect — документ временно доступен по другому URL. Код разрешает не менять метод запроса. Нужен, чтобы перенаправлять пользователей, но оставлять техническую возможность отправки POST-запросов.

308 Permanent Redirect — запрашиваемый документ окончательно перенесён на новый URL.

Коды HTTP-ошибок на стороне клиента

Класс кодов 4xx помогает найти ошибки со стороны клиента. В теле сообщения сервер отправляет текстовое пояснение для пользователя.

400 Bad Request — некорректный запрос. Сервер обнаружил в запросе клиента синтаксическую ошибку. Чтобы исправить её, проверьте корректность отправляемого запроса.

401 Unauthorized — отсутствует аутентификация. Для получения доступа к запрашиваемому ресурсу клиент должен зарегистрироваться или ввести пароль.

402 Payment Required — отсутствует доступ к документу. Такой код обычно используется платными пользовательскими сервисами. Доступ закрывается, если просрочена оплата.

403 Forbidden — доступ запрещён. Сервер обработал запрос, но отказывается выполнять его из-за ограничений к указанному ресурсу. Наиболее вероятная причина ограничения — попытка доступа к системным ресурсам веб-сервера или к закрытым файлам.

404 Not Found — отсутствует запрос по введённому URL. Обычно ошибка возникает из-за неправильно написанного адреса веб-страницы. Убедитесь, что вы ввели данные правильно.

405 Method Not Allowed — некорректный метод. Указанный клиентом метод запроса нельзя применить к текущему ресурсу. В теле сообщения сервер укажет доступные методы в заголовке Allow.

406 Not Acceptable — неподдерживаемый формат запроса. Сервер не может прислать методы, которые применимы к текущему запросу. Причина — неспособность поисковой системы поддерживать кодировку документа или его язык. Посмотрите в теле сообщения лист доступных ресурсов и выберите один из вариантов.

407 Proxy Authentication Required — отсутствует регистрация прокси. Механизм аналогичен идентификации на исходном сервере по коду 401.

408 Request Timeout — таймаут запроса. Время ожидания сервером истекло, но клиент может повторить аналогичный запрос. Ошибка возникает, если в какой-то момент источник данных перестал отвечать, например, из-за внутренних повреждений или потери связи. Чтобы исправить, проверьте наличие интернета, а затем обновите страницу.

409 Conflict — несовместимость двух запросов. Запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Частая причина ошибки — операции с методом PUT. Например, если нужно скачать файл, возраст которого превышает возраст того, что уже размещён на сервере.

410 Gone — ресурс больше не существует по указанному URL, страница удалена или недоступна. Если навсегда удаляете страницу, сделайте так, чтобы она давала именно 410-ый ответ. Тогда поисковый робот научится обходить её. Если удаляете временно, эффективнее использовать 404-ый ответ.

411 Length Required — сервер отклонил отправляемый запрос, поскольку не нашёл значение Content-Length. Ответ может быть получен как при обычных POST-запросах, так и при PUT-запросах.

412 Precondition Failed — ни одно из условных полей заголовка не выполнено. Как исправить: проверьте корректность и соблюдение HTTP-заголовков.

413 Payload Too Large — сервер отказал в обработке запроса из-за слишком большого размера. Браузеры поддерживают запросы от 2 до 8 килобайт.

414 URI Too Long — сервер отказал в обработке запроса из-за слишком длинного URL. Ошибку можно спровоцировать, если вы пытались передать длинные параметры через метод GET, а не POST.

415 Unsupported Media Type — некорректный медиаформат. Сервер не смог работать с указанным типом данных при выбранном методе.

416 Range Not Satisfiable — некорректно указанный диапазон, с которым не может взаимодействовать сервис. Ошибка возникает, если допущена опечатка в синтаксисе или диапазон отсутствует в необходимом документе. Чтобы исправить, проверьте синтаксис значения Range и обновите страницу.

417 Expectation Failed — сервер некорректно идентифицирует значение поля Expect заголовка запроса. Вы не сможете самостоятельно устранить ошибку, но можете обратиться в поддержку, если используете прокси Squid. Ещё один вариант — разрешить BS_PingHost обращаться к сети без участия прокси.

422 Unprocessable Entity — сервер принял запрос и может работать с указанным видом данных, но имеется какая-то логическая ошибка, мешающая выполнить операцию. Код не укажет, какая именно ошибка допущена, но чаще всего найти её удаётся в семантике документа.

423 Locked — используемый ресурс заблокировали, поскольку HTTP-метод был выбран неправильно. Перезагрузите интернет-роутер и компьютер, повторите операцию.

424 Failed Dependency — ресурс заблокировали в целях безопасности. Такой ответ отдаётся при наличии признаков несанкционированного доступа к CMS-файлам.

426 Upgrade Required — для продолжения работу клиенту необходимо обновить протокол. Ошибка возникает, если сервер требует обновление до SSL-протокола, а у клиента нет его поддержки.

429 Too Many Requests — клиент пытался отправить слишком много запросов за короткий промежуток времени. Ошибка возникает, потому что такая активность напоминает DDoS-атаки. Чтобы исправить её, отключите все плагины CMS, а затем включите их по очереди. Так вы найдёте источник проблемы.

451 Unavailable For Legal Reasons — доступ к странице закрыт по решению суда. Наиболее частая причина — нарушение авторских прав. Вы можете попытаться создать дубли, но рано или поздно ресурс с идентичным содержимым заблокируют. Временное решение — сменить домен. Но лучше всего — не нарушать закон.

Коды HTTP-ошибок на стороне сервера

Коды класса 5хх информируют о ситуациях, когда при выполнении операции ошибка произошла на стороне сервера. Почти всегда клиенту отправляется ответ, который отображает причину сбоя.

500 Internal Server Error — любой внутренний сбой сервера, из-за которого не удаётся выполнить запрос. Часто проблема заключается в некорректно указанных директивах в системных файлах или в опечатках внутри скриптов. Как исправить ошибку: проверьте конфликты плагинов и дополнений. Возможно, в настройках административной панели указана одна версия PHP, а на сайте применяется другая, из-за чего создаётся высокая нагрузка на хостинг.

501 Not Implemented — не поддерживаются возможности, необходимые для обработки запроса. Сервер не понимает выбранный метод запроса, поэтому происходит ошибка. Исправить её самостоятельно вы не сможете.

502 Bad Gateway — сбой шлюза. Вышестоящий сервер отправил некорректный ответ серверу, выступающему в роли шлюза или прокси-сервера.

503 Service Unavailable — запрос не обработан по техническим причинам. Ошибка возникает, если сервер на обслуживании или сильно перегружен. Убедитесь, что пропускная способность сервера не ограничена профилактическими работами и отключите VPN.

504 Gateway Timeout — прокси-сервер не дождался ответа от вышестоящего сервера. Попробуйте обновить страницу. А если не помогло — почистите DNS-кэш. Для этого нажмите клавиши Windows и R, введите команду cmd. В открывшемся окне выберите ipconfig/flushdns и нажмите Enter.

505 HTTP Version Not Supported — сервер не поддерживает выбранную версию HTTP-протокола.

507 Insufficient Storage — на жёстком диске отсутствует место для выполнения запроса.

510 Not Extended — на сервере нет расширения, которое пытается использовать клиент. В теле сообщения сервер укажет, какие расширения доступны.

Как узнать код ответа сервера

Вы можете проверить код ответа сервера через опции браузера или специальные приложения. Например, в Google Chrome значение кода отображено в графе Status в разделе Network. Чтобы получить данные:

  • откройте в браузере нужную страницу;
  • активируйте функциональную панель вебмастера, нажав кнопку F12.

активируйте функциональную панель вебмастера, нажав кнопку F12

Ещё один вариант узнать ответ веб-страницы — использовать готовые сервисы: bertal, 2ip, cy-pr, wwhois, 4seo.

Рассмотрим, как они работают на примере mainspy:

  1. Перейдите на официальный сайт сервиса.

Перейдите на официальный сайт сервиса

  1. Укажите URL для проверки — один или несколько.

Укажите URL для проверки — один или несколько

  1. Нажмите кнопку «Проверить».

Нажмите кнопку «Проверить»

В течение нескольких секунд на экране отобразится отчёт, в котором напротив каждого URL будет стоять код ответа сервера.

В течение нескольких секунд на экране отобразится отчёт, в котором напротив каждого URL будет стоять код ответа сервера

Анализировать коды ответа сервера могут не только поисковые роботы, но и люди. Научившись проверять их и правильно интерпретировать значения, вы сможете быстро определить, где ошибка при выполнении HTTP запроса и как её устранить.

Чтобы правильно истолковать ответ такого севера, базовых знаний недостаточно. Записывайтесь на курсы по веб-разработке, чтобы восполнить пробелы в знаниях и научитесь переводить такие коды ответов на человеческий язык.

Телеграм-канал Вани Буявца, только внизу
0 Коментариев
1

Почитаем еще?

Оставьте комментарий

Мы иногда используем cookie-файлы, чтобы получше узнать вас и персонализировать контент :) Замечательно!