← Все статьи

SiteGuard13 мин чтения

Коды ответа HTTP: что означают статусы сервера и как их проверить

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

Чтобы правильно оценить результат, смотрите не только на число. Важны точный URL, метод запроса, содержимое ответа и условия проверки. Успешный код главной страницы не подтверждает загрузку каталога или отправку заявки. Этот справочник поможет найти значение нужного статуса, проверить его самостоятельно и понять, с чего начать разбор проблемы.

Что такое HTTP-статус и кто его возвращает

Когда браузер открывает страницу, он отправляет запрос. В ответе приходят код состояния, заголовки и, когда это предусмотрено, содержимое: HTML, изображение, данные API или другой ресурс. Например, строка ответа HTTP/1.1 может выглядеть так:

HTTP/1.1 404 Not Found

Здесь 404 — код, а Not Found — поясняющая фраза. Ориентируйтесь прежде всего на число: текстовое название бывает другим, а формат представления ответа зависит от версии протокола и инструмента. На самой странице можно написать «Всё хорошо», хотя фактически сервер вернёт 500. Возможна и обратная ситуация: посетитель видит «Страница не найдена», но технический статус остаётся 200.

Ответ может сформировать приложение, веб-сервер, прокси, сеть доставки контента CDN или защитный фильтр. Поэтому один статус не указывает точное место неисправности. Например, 403 бывает результатом правил доступа к разделу или блокировки запроса защитой. Определять источник помогают заголовки, время события, идентификатор запроса и журналы соответствующих компонентов.

У одной загрузки страницы обычно много запросов. HTML может прийти с 200, изображение — с 404, а запрос наличия товара — с 503. В отчёте всегда связывайте код с конкретным адресом и действием пользователя. Формулировка «каталог открывается, но запрос списка товаров получает 503» полезнее общего сообщения «на сайте ошибка».

Пять групп кодов ответа сервера

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

ДиапазонОбщий смыслКак использовать при диагностике
100–199Промежуточная информация об обработке запроса.Посмотреть, что произошло дальше и каким стал итог обмена.
200–299Запрос успешно принят или обработан в значении конкретного кода.Проверить содержимое и ожидаемый результат действия.
300–399Для завершения нужны дополнительные действия, часто переход к другому адресу.Изучить перенаправление или условия использования кэша.
400–499Запрос не выполнен из-за его свойств, ограничений доступа или состояния ресурса.Сверить адрес, метод, данные, авторизацию и правила ограничений.
500–599Сервер или промежуточный компонент не смог выполнить запрос.Проверить журналы, доступность приложения и его зависимостей.

Название «ошибка клиента» для 4xx не означает, что виноват посетитель. Неверную ссылку мог создать сайт, а корректный запрос — заблокировать ошибочно настроенный фильтр. Аналогично 5xx не всегда означает поломку физического сервера: проблема может находиться между прокси и приложением.

1xx и 2xx: продолжение обработки и успешные ответы

Информационные статусы редко требуют действий обычного посетителя. 100 Continue позволяет клиенту продолжить отправку запроса. 101 Switching Protocols сообщает о согласованном переходе на другой протокол. 103 Early Hints передаёт ранние подсказки о ресурсах, пока готовится основной ответ. Эти сообщения нужно рассматривать в контексте дальнейшего обмена.

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

КодЗначениеПрактический пример и проверка
200 OKЗапрос выполнен успешно.Страница получена. Убедитесь, что это нужный контент, а не заглушка с формально успешным статусом.
201 CreatedСоздан новый ресурс.API подтвердил создание записи. Проверьте возвращённые данные и адрес нового ресурса, если он указан.
202 AcceptedЗапрос принят, но обработка ещё не завершена.Задание поставлено в очередь. Для подтверждения результата требуется отдельная проверка его состояния.
204 No ContentЗапрос успешно выполнен, содержимое ответа отсутствует.Операция API завершилась без документа в ответе. Ожидание HTML-страницы здесь может быть ошибкой клиента.
206 Partial ContentПередана запрошенная часть ресурса.Загрузка видео или файла по диапазонам. Такой ответ сам по себе не говорит о повреждении файла.

Особенно важно различать «принято» и «завершено». Представьте выгрузку товаров: сервис вернул 202, после чего задача завершилась ошибкой в очереди. Запрос был принят корректно, однако нужный бизнес-результат не достигнут. Для такого процесса проверяют и первоначальный ответ, и конечное состояние задания.

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

3xx: перенаправления и использование кэша

Перенаправление сообщает клиенту, где продолжить обращение. Целевой адрес обычно находится в заголовке Location. Это нормальный механизм для перехода на HTTPS, смены URL и других предусмотренных сценариев. Ошибка возникает, когда переход ведёт не туда, повторяется по кругу или заканчивается недоступной страницей.

КодЗначениеЧто проверить
301 Moved PermanentlyРесурс постоянно перемещён.Соответствует ли новый URL прежнему содержимому и открывается ли конечная страница.
302 FoundРесурс временно доступен по другому адресу.Действительно ли переход временный и куда он ведёт посетителя.
303 See OtherРезультат можно получить отдельным обращением к другому ресурсу.Подходит ли переход к странице результата после действия; дальнейшее получение выполняется через GET или HEAD.
304 Not ModifiedУсловный запрос подтвердил актуальность сохранённой версии.Корректно ли приложение использует кэш. Это не переход на другой URL.
307 Temporary RedirectВременный переход с сохранением метода запроса.Правильны ли адрес назначения и повторная отправка исходных данных.
308 Permanent RedirectПостоянный переход с сохранением метода запроса.Нужна ли именно постоянная смена адреса с сохранением метода и тела.

Различие методов важно для форм и API. При следовании 301 или 302 клиент может преобразовать POST в GET. Коды 307 и 308 при автоматическом переходе требуют сохранить метод и тело. Выбирать их только по слову «постоянный» или «временный» недостаточно: разработчику нужно учесть, какое действие выполняется и как должен обработаться повторный запрос.

304 стоит отдельно. Браузер или другой клиент уже располагает копией ресурса и уточняет, изменилась ли она, например с помощью If-None-Match. Если сохранённая версия пригодна, сервер может вернуть 304 без тела документа. Попытка «исправить все 304 на 200» обычно не нужна: сначала выясните, действительно ли показывается устаревший контент.

Проверяйте всю цепочку. Условный маршрут HTTP → HTTPS → новый адрес → 404 содержит корректные перенаправления, но заканчивается отсутствующей страницей. Сам факт корректного перехода на первом этапе ещё не описывает конечный результат посетителя.

4xx: ошибки запроса, отсутствие страницы и ограничения

Коды этой группы помогают разделить разные задачи: найти удалённую страницу, восстановить авторизацию, исправить отправляемые данные или разобраться с лимитом запросов. Не стоит применять одно решение ко всем 4xx — например, очищать браузер при любой ошибке.

КодЧто означаетПервое полезное действие
400 Bad RequestСервер отклонил запрос, считая его некорректным.Проверить формат запроса, заголовки и отправляемые данные.
401 UnauthorizedДля ресурса нет действительных данных аутентификации.Проверить способ входа, срок сеанса или токена.
403 ForbiddenЗапрос понятен, но сервер отказывается его выполнять.Проверить права, ограничения доступа и защитные правила.
404 Not FoundРесурс не найден либо сервер не раскрывает его существование.Сверить URL, публикацию страницы и маршрут приложения.
405 Method Not AllowedМетод известен серверу, но не разрешён для этого ресурса.Сверить GET, POST или другой метод с документацией; изучить заголовок Allow.
408 Request TimeoutСервер не дождался полного запроса за отведённое время.Проверить условия передачи запроса и повторяемость события.
409 ConflictЗапрос конфликтует с текущим состоянием ресурса.Проверить актуальность данных, версию записи и условия операции.
410 GoneРесурс больше недоступен; состояние предполагается постоянным.Уточнить, удалён ли материал намеренно и есть ли у него подходящая замена.
413 Content Too LargeСодержимое запроса превышает допустимый размер.Проверить размер файла или тела запроса и действующие лимиты.
415 Unsupported Media TypeФормат содержимого запроса не поддерживается.Сверить Content-Type, кодирование и фактическое тело.
422 Unprocessable ContentФормат понятен и синтаксис корректен, но инструкции нельзя обработать.Прочитать подробности ответа и проверить смысловые ограничения данных.
429 Too Many RequestsСработало ограничение количества запросов за период.Снизить частоту и учесть Retry-After, если он передан.

В старых интерфейсах 413 может называться Payload Too Large или Request Entity Too Large, а 422 — Unprocessable Entity. Это знакомые варианты названий тех же номеров. Для диагностики важнее сам код, детали ответа и документация приложения.

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

При 429 не запускайте бесконечные повторения: они мешают восстановить нормальный режим обращения. При 409 и 422 изучайте объяснение API до повторной отправки. Исправление причины часто требует изменить данные, а не увеличить число попыток.

5xx: ошибки сервера и промежуточных компонентов

Для посетителя большинство таких ответов выглядит одинаково: нужное действие недоступно. Владельцу коды помогают определить, какие журналы и связи проверить сначала. Они задают направление, но не заменяют сообщение приложения об ошибке.

КодЗначениеКуда смотреть
500 Internal Server ErrorНеожиданная ситуация помешала выполнить запрос.Журналы приложения и сервера, изменения перед началом сбоя.
501 Not ImplementedСервер не поддерживает необходимую для запроса функциональность.Поддержку метода и возможностей API или сервера.
502 Bad GatewayШлюз или прокси получил некорректный ответ от вышестоящего сервера.Соединение прокси с приложением, состояние и ответ приложения.
503 Service UnavailableСервис временно не готов обработать запрос.Перегрузку, обслуживание, ограничения ресурсов и доступность зависимостей.
504 Gateway TimeoutШлюз или прокси не дождался своевременного ответа вышестоящего сервера.Время работы приложения, запросы к зависимостям и связанные таймауты.

Разделяйте 408 и 504: в первом случае сервер не дождался запроса, во втором посредник не дождался ответа другого сервера. Увеличение всех таймаутов подряд может только продлить ожидание посетителя. Сначала выясните, где именно проходит время и почему компонент не завершает работу.

Если сайт временно закрыт на обслуживание, 503 позволяет корректно описать это состояние. Заголовок Retry-After может сообщить дату или число секунд до следующей попытки. Его значение должно соответствовать ожидаемому режиму работ. Сам заголовок не гарантирует восстановление к сроку и не заставляет каждый клиент повторить запрос точно по расписанию.

Как проверить код ответа страницы

Для быстрой проверки достаточно браузера. Важно исследовать тот запрос, с которым возникла проблема: документ страницы, загрузку файла или обращение формы к API. Их статусы могут различаться даже при одном действии посетителя.

В инструментах разработчика браузера

  1. Откройте нужный адрес и инструменты разработчика через меню браузера.
  2. Перейдите на вкладку Network / Сеть, затем перезагрузите страницу.
  3. Для документа найдите запрос типа document или используйте фильтр Doc. Сверьте полный URL.
  4. Посмотрите столбец Status и раздел заголовков выбранного запроса.
  5. Для сбоя формы выполните действие и найдите соответствующий запрос Fetch/XHR. Изучите также вкладку ответа.

Чтобы видеть переходы между страницами, можно включить сохранение журнала Preserve log. Учитывайте пометки о кэше: повторное отображение страницы не всегда означает новое получение документа от сервера. Перед передачей результатов поддержке скройте cookies, токены и персональные данные.

Через curl

Следующий пример выполняет GET и выводит заголовки первого ответа. В Linux или macOS замените примерный адрес своим URL:

curl --silent --show-error --connect-timeout 10 --max-time 30 --dump-header - --output /dev/null "https://example.com/"

В Windows выполните в PowerShell:

curl.exe --silent --show-error --connect-timeout 10 --max-time 30 --dump-header - --output NUL "https://example.com/"

Чтобы пройти цепочку перенаправлений, добавьте --location --max-redirs 5: в выводе появятся заголовки полученных ответов. Пределы времени и числа переходов здесь выбраны для примера.

Короткая команда с -I выполняет HEAD. Некоторые приложения обрабатывают его иначе, чем GET, поэтому неожиданную ошибку HEAD стоит перепроверить обычным GET-запросом. Не отключайте проверку сертификата ради получения «успешного» результата: ошибка TLS тоже важна для диагностики.

Как HTTP-статусы связаны с индексацией и SEO

Поисковый робот получает HTTP-ответы так же, как другие клиенты, но использует их для своих решений об обработке URL. По документации Google, 2xx позволяет передать содержимое дальше на обработку, однако не гарантирует индексацию. Длительные 5xx и ответы 429 способны замедлять обход; постоянно недоступные страницы могут со временем исчезнуть из индекса.

Soft 404 — ситуация, когда по содержимому страница похожа на ошибку или пустой результат, хотя сервер сообщил об успехе. Для намеренно удалённого материала без подходящей замены настройте корректный 404 или 410. Если материал перенесён, используйте соответствующее перенаправление на его новый адрес.

Не отправляйте все отсутствующие страницы на главную только ради исчезновения 404 из отчёта. Посетитель, искавший конкретную инструкцию, окажется в неподходящем месте. Сначала решите судьбу каждого важного URL: восстановить материал, перенести на релевантный аналог или оставить корректное сообщение об удалении.

Статус и правила индексации проверяют отдельно. Рабочая страница может отдавать 200 и содержать noindex. Чтобы Google увидел это правило, робот должен получить доступ к странице. Запрет обхода в robots.txt не равен запрету индексации. При разборе поисковой проблемы сопоставляйте код, доступность роботу, содержимое и настройки индексации.

Что делать после обнаружения неожиданного статуса

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

  1. Зафиксируйте запрос. Укажите URL, метод, время с часовым поясом, код и важные детали ответа.
  2. Определите масштаб. Проверьте, затронут один адрес, раздел, операция или несколько независимых страниц.
  3. Сопоставьте условия. Сравните авторизованный и публичный доступ, браузер и проверяющий инструмент. Не считайте различия автоматическим доказательством ошибки сервиса.
  4. Найдите подтверждение причины. Посмотрите журнал, последние изменения, правила доступа или параметры запроса.
  5. Проверьте исправление. Повторите исходное действие и убедитесь в ожидаемом ответе и результате для пользователя.

Например, после обновления магазина карточки товаров отвечают 200, но добавление в корзину получает 422. Менять код главной страницы в этом случае бессмысленно. Нужно исследовать данные запроса корзины и пояснение API. А если несколько разделов одновременно возвращают 502, полезнее начать с состояния приложения за прокси.

Как замечать изменения статусов автоматически

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

Для регулярного контроля заранее задайте ожидаемый ответ каждого URL, частоту проверок, правила подтверждения сбоя и получателя уведомлений. Сохраняйте время отказа и восстановления вместе с результатами запросов: так команда сможет сопоставить инцидент с изменениями сайта. Если вы рассматриваете SiteGuard для этой задачи, уточните доступные виды проверок и текущие условия перед подключением.

Выберите адреса, которые связаны с обращениями клиентов: страницы услуг, каталог, контакты. Дополнительно полезен контроль ожидаемого содержимого, поскольку заглушка иногда возвращает 200. При выборе решения проверьте, можно ли задать такое условие и отдельно отслеживать важные страницы. Назначьте ответственного за сообщения и заранее определите, какие данные ему нужны для первого действия.

Частые вопросы о кодах ответа HTTP

Какой код должна возвращать исправная страница?

Обычный публичный документ часто возвращает 200. Но корректный результат зависит от задачи: перенаправление, ответ API без содержимого или подтверждение кэша используют другие статусы. Проверяйте соответствие поведению, которое предусмотрено для конкретного URL.

Ошибка 404 означает, что весь сайт не работает?

Она относится к запрошенному ресурсу. Главная, другие разделы и API могут работать нормально. Для оценки масштаба проверьте несколько нужных адресов, а затем выясните, почему отсутствует именно проблемная страница.

Что означает код ответа 000?

Такого HTTP-статуса в стандарте нет. Например, curl может вывести 000, когда HTTP-код не был получен. Причину ищите в сообщении инструмента: возможны ошибка DNS, проблема соединения, TLS или истечение времени ожидания.

Нужно ли исправлять 304 Not Modified?

Обычно это штатная работа условного запроса и кэша. Проверять настройки следует, если посетители получают неправильную или устаревшую версию. Один факт появления 304 не подтверждает неисправность страницы.

Почему браузер показывает ошибку, но HTTP-кода нет?

Обмен мог остановиться до получения HTTP-ответа, например при разрешении домена или установлении защищённого соединения. Сохраните точное сообщение и выясните, на каком этапе произошёл сбой. Подбирать исправление для 500 при ошибке DNS не нужно.

Источники и техническая документация