4xx vs 5xx: ошибки клиента и ошибки сервера

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

4xx — это класс ошибок клиента. Он означает, что проблема в самом запросе, и включает такие случаи, как неверный URL (404), синтаксическая ошибка (400), недостаток прав (401, 403) и слишком много запросов (429). Повторная отправка того же запроса без изменений обычно даёт тот же результат, поэтому нужно исправить сам запрос.

5xx — это класс ошибок сервера. Он означает, что запрос был корректным, но сервер не смог его обработать, и включает внутренние исключения (500), неисправный upstream (502), перегрузку или обслуживание (503) и тайм-ауты шлюза (504). Это не те проблемы, которые может исправить клиент, поэтому нужно проверить журналы сервера и состояние бэкенда.

Что касается порядка отладки: при 4xx быстрее сначала проверить URL, заголовки, тело и аутентификацию запроса, а при 5xx — журналы сервера, upstream и использование ресурсов. 502, 503 и 504 обычно связаны с проблемами бэкенда за обратным прокси.