← Все инструменты

Коды состояния HTTP

Понятный гид по кодам состояния HTTP: что означают 200, 301, 404, 500 и другие, пять классов кодов и советы для SEO и отладки.

HTTP-коды состояния: от 200 до 503

Каждый раз, когда браузер что-то запрашивает у веб-сервера, сервер отвечает трёхзначным числом ещё до того, как отправит HTML, изображение или JSON. Это HTTP-код состояния, и он — краткий способ сервера сообщить, что произошло: страница здесь, она переехала, вы не авторизованы или что-то сломалось на нашей стороне. В большинстве случаев вы эти коды не видите, потому что всё работает и страница просто загружается. Но как только сайт ведёт себя странно, код состояния — первая подсказка, на которую стоит обратить внимание.

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

Абстрактная визуализация веб-запросов и ответов со светящимися зелёными, янтарными и красными индикаторами состояния
На каждый запрос — один ответ: зелёный для успеха, янтарный для перенаправления или ожидания, красный для ошибки.

Пять классов

1xx — информационные. Сервер получил запрос и ещё продолжает работу. В повседневном браузинге встречаются редко и обычно обрабатываются незаметно между браузером и сервером. Классический пример — 100 Continue: он сообщает клиенту, что можно отправить оставшуюся часть большого тела запроса.

2xx — успех. Запрос выполнен. 200 OK — то, что хочется видеть весь день: ресурс найден и уже отправляется. 201 Created появляется после отправки формы или API-вызова, создавшего что-то новое, а 204 No Content означает, что действие выполнено успешно, но отображать нечего.

3xx — перенаправление. Запрошенное находится в другом месте, и браузер обычно следует туда автоматически. Редиректы сохраняют старые ссылки работающими и критически важны для поискового ранжирования.

4xx — ошибка клиента. Что-то в запросе было неверным с вашей стороны: неправильный URL, отсутствие авторизации или несуществующий ресурс. Сервер исправен; он просто не может принять то, что вы отправили.

5xx — ошибка сервера. Ваш запрос был корректным, но сервер споткнулся при его обработке. Причина — в инфраструктуре сайта, а не в вас.

Конкретные коды, которые ищут чаще всего

200 OK — обычный успех. Страница или данные загружены как ожидалось.

301 Moved Permanently сообщает браузерам и поисковым системам, что страница переехала на постоянное новое место. Это SEO-дружественный редирект: он передаёт сигналы ранжирования со старого URL на новый. Используйте его, когда меняете URL навсегда.

302 Found — временное перенаправление. Исходный URL остаётся настоящим, поэтому поисковики продолжают индексировать его, а не пункт назначения. Используйте 302 только когда переезд действительно кратковременный, например при направлении пользователей на сезонную лендинговую страницу.

304 Not Modified — тихий герой быстрой работы браузера. Он сообщает браузеру, что копия, уже находящаяся в кэше, по-прежнему актуальна, поэтому сервер пропускает повторную отправку файла. Меньше данных — быстрее страницы.

400 Bad Request означает, что сервер не смог даже понять запрос: часто из-за некорректного синтаксиса или недопустимого параметра.

401 Unauthorized примерно переводится как «я не знаю, кто вы — пожалуйста, авторизуйтесь». У вас нет действительных учётных данных.

403 Forbidden — другое: сервер знает, кто вы, и всё равно отказывает. У вас нет прав, и повторный вход не поможет.

404 Not Found — самый известный код. Сервер жив и ответил вам, но по этому адресу ничего нет. Обычно это результат опечатки в ссылке или страницы, которую удалили или перенесли без редиректа.

429 Too Many Requests означает, что вас ограничили по частоте запросов. Вы отправили слишком много запросов за слишком короткое время, и сервер просит вас сбавить темп. API используют это постоянно.

500 Internal Server Error — общий ответ «что-то сломалось». Сервер столкнулся с непредвиденным состоянием и не справился, но не сообщает что именно. Смотрите логи сервера.

502 Bad Gateway появляется, когда один сервер, выступающий шлюзом или прокси, получает недопустимый ответ от вышестоящего сервера за ним. Часто признак того, что бэкенд-приложение упало или недоступно.

503 Service Unavailable означает, что сервер временно перегружен или остановлен на техобслуживание. В отличие от 500, это предполагает кратковременные проблемы, и сайт должен скоро вернуться в строй.

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

Что коды состояния значат для SEO и отладки

Для поискового ранжирования именно разница между 301 и 302 чаще всего ставит людей в тупик. Постоянный переезд всегда следует выполнять с кодом 301, чтобы новая страница унаследовала авторитет старой; неверный 302 может оставить поисковики, индексирующими исходный URL, и раздробить сигналы. Тем временем большое количество ошибок 404 расходует бюджет обхода и раздражает посетителей — стоит перенаправлять или исправлять битые ссылки, а не оставлять их ржаветь.

Для отладки семейство кода подсказывает, куда смотреть. Код 4xx указывает на запрос — проверьте URL, заголовки и учётные данные. Код 5xx указывает на сервер — проверьте логи приложения, вышестоящие сервисы и не съехал ли только что деплой. Волна 502 и 503 часто означает, что бэкенд упал или перегружен, а не баг в коде. Точный статус, который возвращает сайт, можно проверить с помощью наших инструментов разработчика, а если 5xx выглядит как проблема с подключением, а не с приложением, быстрый DNS-запрос подтвердит, что домен по-прежнему ведёт на правильный адрес.

Часто задаваемые вопросы

Ошибка 404 вредит моему сайту?

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

В чём разница между редиректами 301 и 302?

301 — постоянный: передаёт сигналы ранжирования новому URL, поэтому используйте его, когда страница переезжает навсегда. 302 — временный: сохраняет индексацию исходного URL, поэтому используйте его только для кратковременных перемещений.

В чём разница между 401 и 403?

401 означает, что вы не прошли аутентификацию — вход в систему может помочь. 403 означает, что сервер вас распознал, но всё равно отказывает в доступе из-за отсутствия прав — повторный вход не поможет.

Что означает ошибка 500 и как её исправить?

500 Internal Server Error означает, что сервер столкнулся с непредвиденной ошибкой при обработке запроса. Сообщение намеренно общее, поэтому исправление обычно начинается с чтения логов сервера для поиска реальной причины.

Почему я получаю код 429?

429 Too Many Requests означает, что вас ограничили по частоте запросов из-за слишком быстрой отправки. Замедлитесь, соблюдайте заголовок Retry-After, если сервер его возвращает, и добавьте логику отступа в скрипты и API-клиенты.

Что означает 503 Service Unavailable?

503 означает, что сервер временно не может обработать запрос — как правило, из-за перегрузки или планового техобслуживания. Это кратковременная проблема, и сайт должен восстановиться самостоятельно в ближайшее время.