На какие группы делятся HTTP статус-коды?

«На какие группы делятся HTTP статус-коды?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP статус-коды сгруппированы по первой цифре трехзначного числа, что указывает на класс ответа сервера.

Группа Диапазон Назначение Ключевые примеры
1xx: Информационные 100-199 Информируют клиента о промежуточном состоянии обработки запроса. 100 Continue — сервер готов принять тело запроса после заголовков. 101 Switching Protocols — согласие на смену протокола (например, на WebSocket).
2xx: Успешные 200-299 Запрос был успешно получен, понят и обработан. 200 OK — стандартный успешный ответ. 201 Created — ресурс успешно создан. 204 No Content — запрос выполнен, но тело ответа пустое.
3xx: Перенаправления 300-399 Указывают клиенту, что для завершения запроса требуется дополнительное действие (часто — переход по другому URL). 301 Moved Permanently — ресурс навсегда перемещен. 302 Found (или 307 Temporary Redirect) — временное перенаправление. 304 Not Modified — контент не изменился (используется кэш).
4xx: Ошибки клиента 400-499 Запрос содержит ошибку или не может быть выполнен по вине клиента (неверный синтаксис, отсутствие прав). 400 Bad Request — общая ошибка в структуре запроса. 401 Unauthorized — требуется аутентификация. 403 Forbidden — доступ запрещен. 404 Not Found — ресурс не найден. 429 Too Many Requests — превышен лимит запросов.
5xx: Ошибки сервера 500-599 Сервер не смог обработать корректный запрос из-за внутренней ошибки. 500 Internal Server Error — общая ошибка сервера. 502 Bad Gateway — прокси/шлюз получил неверный ответ от вышестоящего сервера. 503 Service Unavailable — сервер временно перегружен или на обслуживании. 504 Gateway Timeout — таймаут ответа от вышестоящего сервера.

Пример ответа сервера:

HTTP/1.1 404 Not Found
Content-Type: application/json

{"error": "Resource not found"}