Каждый ответ сервера начинается с трёхзначного кода. Первая цифра задаёт смысл, остальные уточняют. Знание нескольких кодов экономит часы отладки: они сразу говорят, на чьей стороне проблема.
Пять групп
| Группа | Смысл |
|---|---|
| 1xx | Информационные, запрос принят и обрабатывается |
| 2xx | Успех |
| 3xx | Перенаправление, ресурс в другом месте |
| 4xx | Ошибка на стороне клиента — виноват запрос |
| 5xx | Ошибка на стороне сервера — запрос корректный, сервер не справился |
Уже это деление решает главный вопрос при отладке: 4xx означает, что править надо запрос, 5xx — что смотреть логи сервера.
Коды, которые встречаются каждый день
- 200 OK — всё хорошо, ответ содержит запрошенные данные.
- 201 Created — ресурс создан, обычный ответ на успешный POST в API.
- 204 No Content — успех, но возвращать нечего. Типично для удаления.
- 301 Moved Permanently — переехало навсегда. Браузеры и поисковики запоминают надолго.
- 302 Found — временное перенаправление, ничего не кэшируется.
- 304 Not Modified — ресурс не изменился, берите из кэша. Так экономится трафик.
Ошибки клиента
- 400 Bad Request — сервер не понял запрос: сломанный JSON, неверные параметры.
- 401 Unauthorized — вы не представились. Нужны данные для входа или токен.
- 403 Forbidden — представились, но доступ запрещён. Аутентификация прошла, авторизация нет.
- 404 Not Found — по этому адресу ничего нет.
- 405 Method Not Allowed — адрес есть, но не принимает такой метод. Классика: отправили POST туда, где ждут GET.
- 413 Payload Too Large — файл больше разрешённого. Лечится настройкой сервера.
- 422 Unprocessable Entity — формат верный, но данные не проходят проверку.
- 429 Too Many Requests — слишком часто. Сработало ограничение частоты, надо ждать.
Пара 401 и 403 путается чаще всего. Простое правило: 401 — «кто вы?», 403 — «я знаю, кто вы, и вам нельзя».
Ошибки сервера
- 500 Internal Server Error — необработанное исключение в коде. Подробности только в логах.
- 502 Bad Gateway — прокси обратился к приложению, а тот не ответил или упал.
- 503 Service Unavailable — сервер перегружен или на обслуживании. Обычно временно.
- 504 Gateway Timeout — приложение отвечало слишком долго, прокси не дождался.
Различать 502 и 504 полезно: первое означает, что процесс приложения не работает, второе — что он работает, но медленно. Это разные направления поиска.
Как посмотреть коды
Откройте инструменты разработчика в браузере клавишей F12, вкладка сети — там код каждого запроса. В терминале то же самое делает одна команда:
curl -I https://infozal.ru/
Флаг запрашивает только заголовки, и вы увидите код ответа, тип содержимого и адрес перенаправления, если оно есть. Для проверки цепочки редиректов добавьте флаг следования за перенаправлениями.
Частые ошибки
- Ставят 301 при временном переносе и потом не могут вернуть посетителей.
- Отдают 200 вместе со страницей об ошибке — поисковики индексируют такие страницы как рабочие.
- Путают 401 и 403 и ищут проблему не там.
- Видят 500 и правят запрос, вместо того чтобы открыть логи сервера.
- Не различают 502 и 504 и перезапускают то, что и так работает.
Что запомнить
Первая цифра важнее остальных: 4xx — проблема в запросе, 5xx — на сервере. 401 значит «представьтесь», 403 — «вам нельзя». 500 отправляет в логи, 502 говорит, что приложение не отвечает, 504 — что отвечает слишком медленно. И следите, чтобы страницы ошибок отдавали правильный код, а не 200.
Коротко: вопросы и ответы
Что делать при 429? Уменьшить частоту запросов и добавить паузы с увеличением интервала. Заголовки ответа часто указывают, сколько ждать.
Влияют ли коды на SEO? Да. 301 передаёт вес страницы, 302 нет, а страницы ошибок с кодом 200 плохо влияют на индексацию.
Есть ли код 418? Есть, шуточный: сервер сообщает, что он чайник. Появился как первоапрельская шутка и остался в стандарте.
Комментарии