- Главная
- Бесплатные инструменты
- Коды ответа HTTP
Справочник кодов HTTP
Все распространённые коды ответа HTTP от 1xx до 5xx простым языком и что делать, когда их видит монитор, с ошибками nginx и Cloudflare. Бесплатно, с поиском.
Столбец оценки показывает, как HTTP-монитор Tenium относится к коду при настройках по умолчанию: ожидаемый статус от 200 до 299, редиректы выполняются. Ожидаемые статусы можно изменить для каждого монитора.
53 из 53 кодов
| Код | Название | Что он значит | Что делать, когда его видит монитор | Оценка монитора по умолчанию |
|---|---|---|---|---|
| 100 | Continue | Сервер получил заголовки запроса, и клиент может отправлять тело. | В мониторе вы почти никогда его не увидите: HTTP-клиент обрабатывает его сам. Если проверка его показывает, между вами и сервером что-то странно отправляет промежуточные ответы. Попробуйте открыть URL через curl -v. | Редко встречается |
| 101 | Switching Protocols | Сервер согласен сменить протокол, например на WebSocket. | Ожидаемо для конечной точки WebSocket. Обычный HTTP-монитор для неё не подходит: следите за страницей, которая отдаёт приложение, или за портом. | Редко встречается |
| 103 | Early Hints | Предварительный ответ, который позволяет браузеру начать загрузку ресурсов до настоящего ответа. | Это не сбой. Если монитор его показывает, посредник неправильно обрабатывает промежуточные ответы; смотрите итоговый статус. | Редко встречается |
| 200 | OK | Запрос выполнен, в ответе есть страница или данные. | Хорошо, но это не доказательство, что страница правильная. WordPress и многие приложения отвечают 200 с сообщением об ошибке в теле. Добавьте проверку ключевого слова для текста, который есть только на исправной странице. | Работает |
| 201 | Created | Запрос выполнен и создал новый ресурс, обычно после POST. | Нормально для API, который что-то создаёт. Если вы следите за конечной точкой POST, оставьте 201 в ожидаемых статусах (диапазон 200-299 по умолчанию его уже включает). | Работает |
| 202 | Accepted | Запрос принят в обработку, но ещё не завершён. | Нормально для API с очередями. Это ничего не говорит о том, завершится ли задача успешно, поэтому добавьте heartbeat для самой задачи. | Работает |
| 203 | Non-Authoritative Information | Ответ — изменённая копия от прокси, а не точный ответ исходного сервера. | Встречается редко. Прокси или CDN переписывает ответы. Обычно безвредно; убедитесь, что тело такое, как вы ожидаете. | Работает |
| 204 | No Content | Запрос выполнен, тела в ответе намеренно нет. | Нормально для API и конечных точек проверки состояния. Проверка ключевого слова на пустом теле не работает, поэтому здесь полагайтесь на код статуса. | Работает |
| 206 | Partial Content | Возвращена только часть файла, потому что запрошен диапазон байтов. | Нормально для видео и больших загрузок. Монитор не отправляет заголовки Range, поэтому если вы видите его на странице, кэш или сервер ведёт себя необычно. | Работает |
| 300 | Multiple Choices | Есть несколько возможных ответов, и клиент должен выбрать. | На сайтах встречается редко. Если монитор его получает, URL неоднозначен: ссылайтесь на конкретный ресурс. | Переход по редиректу |
| 301 | Moved Permanently | У страницы новый постоянный адрес. | Обновите монитор на конечный URL, чтобы каждая проверка была одним запросом, а не двумя. Цепочка редиректов, которая заканчивается на 200, считается «работает»; та, что зациклена или заканчивается ошибкой, — нет. | Переход по редиректу |
| 302 | Found | Страница временно находится по другому адресу. | Часто встречается при редиректах на вход и смене языка. Если монитор доходит до страницы входа и проверка проходит, вы проверяете не ту страницу, которую думаете. Укажите URL без редиректа. | Переход по редиректу |
| 303 | See Other | Результат находится по другому URL и должен быть получен методом GET, обычно после отправки формы POST. | Ожидаемо после успешной отправки формы. Для монитора конечной точки POST решите, нужно ли следовать за ним или оценивать сам ответ 303. | Переход по редиректу |
| 304 | Not Modified | Кэшированная копия всё ещё актуальна; тело не отправляется. | Появляется только на условных запросах, которые монитор не делает. Если он появился, слой кэша отвечает странно; проверьте заголовки инструментом «HTTP-заголовки». | Редко встречается |
| 307 | Temporary Redirect | Временный редирект, который сохраняет исходный метод и тело. | Часто встречается, когда сайт принудительно включает HTTPS или у домена включён HSTS. Следите прямо за адресом https, чтобы пропустить лишний переход. | Переход по редиректу |
| 308 | Permanent Redirect | Постоянный редирект, который сохраняет исходный метод и тело. | Для мониторинга то же, что 301: переключите монитор на конечный адрес. Проверьте зацикливание, если два правила указывают друг на друга. | Переход по редиректу |
| 400 | Bad Request | Сервер не смог понять запрос. | Проверьте URL на лишние символы, повреждённый заголовок или слишком большой cookie. Если это началось после изменений, прокси или правило WAF может переписывать запрос. | Не работает |
| 401 | Unauthorized | Нужна аутентификация или учётные данные неверны. | Если страница должна быть закрытой, добавьте 401 в ожидаемые статусы или укажите в мониторе учётные данные basic-аутентификации. Если она должна быть публичной, её закрыло правило доступа или плагин. | Не работает |
| 402 | Payment Required | Зарезервирован на будущее; некоторые сервисы используют его для проблем с оплатой. | Если размещённый сервис или API его возвращает, проверьте учётную запись и состояние оплаты у поставщика. | Не работает |
| 403 | Forbidden | Сервер понял запрос, но отказывается его выполнять. | Самая частая причина для монитора — файрвол, WAF или плагин безопасности блокирует его IP-адрес или User-Agent. Добавьте проверяющие серверы в белый список (allow-list), см. список IP-адресов проверок. Проверьте также права на файлы и настройки индексного файла каталога. | Не работает |
| 404 | Not Found | По этому URL на сервере ничего нет. | Страницу удалили, перенесли или изменилась структура постоянных ссылок. Исправьте URL в мониторе или восстановите страницу. Если после обновления 404 на всём сайте, сломаны правила перезаписи. | Не работает |
| 405 | Method Not Allowed | URL существует, но не для этого HTTP-метода. | Некоторые конечные точки отказываются от HEAD или GET. Переключите метод монитора на тот, который принимает конечная точка, обычно GET. | Не работает |
| 406 | Not Acceptable | Сервер не может сформировать ответ, подходящий под заголовки Accept. | Часто это WAF или строгое согласование содержимого. Проверьте, какой заголовок Accept отправляет монитор и что отдаёт конечная точка. | Не работает |
| 408 | Request Timeout | Сервер перестал ждать запрос. | Обычно сервер медленный или перегружен, либо у прокси короткий таймаут. Посмотрите нагрузку сервера и график времени ответа. | Не работает |
| 409 | Conflict | Запрос конфликтует с текущим состоянием ресурса. | Типично для API записи. Для монитора это обычно значит, что вы обращаетесь к конечной точке записи; используйте URL проверки состояния только для чтения. | Не работает |
| 410 | Gone | Страница удалена навсегда и не вернётся. | Это намеренно, в отличие от 404. Удалите монитор или направьте его на замену. | Не работает |
| 413 | Content Too Large | Тело запроса больше, чем принимает сервер. | Увеличьте лимит загрузки в веб-сервере и PHP или уменьшите запрос. Монитор обычно этого не вызывает. | Не работает |
| 414 | URI Too Long | URL длиннее, чем принимает сервер. | Сократите строку запроса в URL монитора или поищите цикл редиректов, который всё время добавляет параметры. | Не работает |
| 415 | Unsupported Media Type | Сервер не принимает тип содержимого запроса. | Сверьте заголовок Content-Type и тело запроса монитора с тем, что ожидает API. | Не работает |
| 418 | I'm a teapot | Шуточный статус из первоапрельского RFC, который некоторые сервисы используют всерьёз. | Некоторые блокировщики ботов возвращают его нежелательным клиентам. Считайте это блокировкой и добавьте монитор в белый список (allow-list). | Не работает |
| 421 | Misdirected Request | Запрос попал на сервер, который не может ответить для этого имени хоста. | Часто это несоответствие TLS или SNI за общим прокси. Проверьте сертификат и виртуальный хост для этого имени. | Не работает |
| 422 | Unprocessable Content | Запрос составлен правильно, но содержит недопустимые данные. | Проверка данных в API не прошла. Проверьте тело, которое отправляет монитор, или переключитесь на конечную точку состояния с GET. | Не работает |
| 425 | Too Early | Сервер не станет обрабатывать запрос, который может быть воспроизведён повторно (ранние данные TLS). | Встречается редко. Повторите; если не проходит, посмотрите настройки ранних данных TLS 1.3 на прокси. | Не работает |
| 429 | Too Many Requests | Вас ограничивают по частоте запросов. | Сервер или WAF ограничивает монитор. Добавьте его IP-адреса в белый список, увеличьте интервал или исключите URL из ограничений. Не игнорируйте: тот же лимит может задевать и настоящих посетителей. | Не работает |
| 431 | Request Header Fields Too Large | Заголовки, чаще всего cookie, слишком большие. | Очистите cookie в браузере для проверки, затем увеличьте лимит размера заголовков в веб-сервере или прокси. | Не работает |
| 451 | Unavailable For Legal Reasons | Содержимое заблокировано по юридическим причинам. | Часто это геоблокировка или решение суда. Если вы ожидаете блокировку, добавьте 451 в ожидаемые статусы монитора; иначе узнайте, кто установил правило. | Не работает |
| 500 | Internal Server Error | Сервер столкнулся с непредвиденной ошибкой при обработке запроса. | Сначала прочитайте журналы ошибок приложения и веб-сервера. Если это началось после развёртывания, откатитесь. В WordPress отключайте плагины по одному. | Не работает |
| 501 | Not Implemented | Сервер не поддерживает запрошенный метод. | Проверьте, что метод правильный и что сервер или прокси его поддерживает; попробуйте GET. | Не работает |
| 502 | Bad Gateway | Шлюз или прокси получил неверный ответ от сервера за ним. | Процесс приложения за nginx, балансировщиком или CDN упал или перезапустился. Убедитесь, что служба приложения запущена, и прочитайте её журнал. | Не работает |
| 503 | Service Unavailable | Сервер перегружен или недоступен из-за обслуживания. | Проверьте нагрузку, память и лимиты соединений. Если это плановое обслуживание, используйте окно обслуживания, чтобы оно не считалось простоем. | Не работает |
| 504 | Gateway Timeout | Шлюз или прокси не дождался ответа от сервера за ним. | Приложение слишком медленное или зависло: медленные запросы, застрявший обработчик или заблокированный внешний API. Посмотрите время ответа и журнал медленных запросов. | Не работает |
| 505 | HTTP Version Not Supported | Сервер не поддерживает использованную версию HTTP. | Встречается редко. Проверьте настройки протокола на прокси и сервере (HTTP/2, HTTP/3). | Не работает |
| 507 | Insufficient Storage | У сервера не хватает места, чтобы выполнить запрос. | Диск или квота заполнены. Освободите место, затем выясните, что его занимает (журналы, резервные копии, загрузки). | Не работает |
| 508 | Loop Detected | Сервер обнаружил бесконечный цикл. Некоторые виртуальные хостинги также используют 508 для превышения лимитов ресурсов. | На виртуальном хостинге учётная запись достигла лимита CPU или процессов: посмотрите трафик и медленные плагины. В остальных случаях ищите цикл перезаписи или прокси. | Не работает |
| 511 | Network Authentication Required | Сеть требует сначала войти, как на порталах авторизации в публичных сетях. | Проверка идёт через портал авторизации или ограниченную сеть. Убедитесь, что монитор обращается к настоящему сайту. | Не работает |
| 499 | Client Closed Request (nginx) | nginx записывает его, когда клиент закрыл соединение до готовности ответа. Клиенту он не отправляется. | Вы увидите его в журналах nginx, а не в мониторе. Много 499 значит, что приложение медленнее, чем готовы ждать посетители. | Не работает |
| 520 | Web Server Returned an Unknown Error (Cloudflare) | Cloudflare получил от вашего исходного сервера пустой, слишком большой или иначе неожиданный ответ. | Проверьте журнал ошибок исходного сервера, размер заголовков ответа и не отбрасывает ли файрвол запросы Cloudflare. | Не работает |
| 521 | Web Server Is Down (Cloudflare) | Cloudflare не смог подключиться к вашему исходному серверу. | Исходный сервер выключен, не слушает порт или блокирует диапазоны IP-адресов Cloudflare. Запустите службу и разрешите Cloudflare в файрволе. | Не работает |
| 522 | Connection Timed Out (Cloudflare) | Cloudflare дошёл до вашего исходного сервера, но соединение не завершилось вовремя. | Исходный сервер перегружен или файрвол отбрасывает пакеты. Проверьте нагрузку, сеть и файрвол исходного сервера. | Не работает |
| 523 | Origin Is Unreachable (Cloudflare) | Cloudflare не находит маршрут к вашему исходному серверу. | Проверьте DNS для адреса исходного сервера в Cloudflare, а также что IP-адрес исходного сервера верен и доступен. | Не работает |
| 524 | A Timeout Occurred (Cloudflare) | Исходный сервер принял соединение, но не ответил в пределах лимита времени Cloudflare. | Медленный запрос: долгий скрипт, отчёт или экспорт. Ускорьте его, вынесите в фоновую задачу или отвечайте раньше. | Не работает |
| 525 | SSL Handshake Failed (Cloudflare) | Cloudflare не смог выполнить рукопожатие TLS с исходным сервером. | Проверьте, что исходный сервер отдаёт HTTPS на порту 443 с рабочим сертификатом и совместимыми настройками TLS. | Не работает |
| 526 | Invalid SSL Certificate (Cloudflare) | Cloudflare не смог проверить сертификат исходного сервера в режиме Full (strict). | Обновите или замените сертификат исходного сервера либо исправьте цепочку. Проверка SSL покажет, что отдаёт исходный сервер. | Не работает |
Подходящих кодов нет. Попробуйте число, например 502, или слово, например таймаут.
Узнайте в тот момент, когда сайт начнёт отдавать один из этих кодов. Tenium проверяет ваши страницы и оповещает, когда код ответа или содержимое страницы неверны. 30 мониторов бесплатно.
Начать бесплатноКак монитор доступности оценивает код ответа
Монитор запрашивает URL и сравнивает код ответа с тем, что вы ему задали. В Tenium по умолчанию это 200-299, а редиректы выполняются, поэтому 301, который заканчивается на 200, считается «работает». Всё остальное, включая каждый 4xx и 5xx, — сбой, который подтверждается второй проверкой, прежде чем откроется инцидент.
Ожидаемые статусы можно изменить для каждого монитора: списком вида `200,204` или классом вида `2xx,3xx`. Делайте это осознанно, для закрытой страницы, которая справедливо отвечает 401, или для конечной точки, отвечающей 204. Не делайте этого, чтобы заглушить монитор, который вам о чём-то сообщает.
Коды, которые легко понять неправильно
Короткий список тех, что на практике вызывают больше всего путаницы:
- 200 не означает, что страница правильная. Многие приложения возвращают 200 с сообщением об ошибке в теле, поэтому добавьте проверку ключевого слова для текста, который есть только на исправной странице.
- 301 и 302 — оба редиректы, но только 301 говорит, что перенос постоянный. Укажите монитору конечный URL, чтобы каждая проверка была одним запросом.
- 401 значит «кто вы?», а 403 — «я знаю, и нет». Монитор, получающий 403 на сайте, который открывается в вашем браузере, обычно заблокирован файрволом или плагином безопасности.
- 502, 503 и 504 приходят от слоя перед приложением. 502 — неверный ответ, 503 — «недоступен или перегружен», 504 — «слишком медленно». Каждый указывает, где искать причину.
- 429 — ограничение частоты запросов. Если его видит ваш монитор, то и настоящие посетители могут его видеть.
Как пользоваться таблицей
Введите код или слово для фильтрации либо выберите класс кнопками. В каждой строке сказано, что значит код и что попробовать в первую очередь, когда о нём сообщает монитор доступности. Коды 499 и 520-526 не входят в стандарт HTTP: их используют nginx и Cloudflare, и они встречаются в журналах и на страницах ошибок сайтов за этими инструментами.
Вопросы об инструменте
В чём разница между 502, 503 и 504?
502 Bad Gateway значит, что прокси получил неверный ответ от приложения за ним, часто потому, что приложение упало. 503 Service Unavailable значит, что сервер перегружен или на обслуживании. 504 Gateway Timeout значит, что приложение не ответило вовремя. Проверьте по порядку процесс, нагрузку и медленные запросы.
Должен ли монитор считать редирект 3xx признаком «работает»?
Редирект — нормальный ответ, но важно, чем он заканчивается. Tenium выполняет редиректы и оценивает итоговый ответ, поэтому цепочка, заканчивающаяся на 200, — «работает», а зацикливание или ошибка в конце — «не работает». Следите за конечным URL, где это возможно.
Почему монитор получает 403, если сайт открывается в моём браузере?
Файрвол, WAF или плагин безопасности блокирует IP-адрес или User-Agent монитора. Добавьте адреса проверяющих серверов со страницы IP-адресов проверок в белый список (allow-list), и монитор будет восприниматься как обычный посетитель.
Можно ли изменить, какие коды считаются «работает»?
Да. У каждого HTTP-монитора есть настройка ожидаемого статуса. Используйте список вида 200,204 или класс вида 2xx,3xx. По умолчанию это 200-299.