Что означают классы кодов ответов HTTP от 1xx до 5xx?
HTTP и HTTPS
Первая цифра кода задаёт класс: 1xx — информационные, 2xx — успех, 3xx — перенаправления, 4xx — ошибка клиента, 5xx — ошибка сервера.
Классы и ходовые коды
- 1xx: 100 Continue — клиент может слать тело; редко виден на практике.
- 2xx: 200 OK, 201 Created, 204 No Content — успех без тела.
- 3xx: 301 — постоянный редирект, кешируется; 302 и 307 — временные; 304 Not Modified — ответ на условный запрос с ETag.
- 4xx: 400 Bad Request, 401 Unauthorized (нет аутентификации), 403 Forbidden (нет прав), 404 Not Found, 409 Conflict, 422 — ошибки валидации, 429 Too Many Requests.
- 5xx: 500 Internal Server Error, 502 Bad Gateway (прокси получил от апстрима некорректный ответ или не смог к нему подключиться), 503 Service Unavailable, 504 Gateway Timeout.
Тонкости
- 401 против 403 — любимый вопрос: первый про «кто ты», второй про «доступ запрещён».
- 302 исторически менял метод на GET; 307 и 308 метод сохраняют.
Коротко для собеседования
По первой цифре сразу видно, чья ошибка: 4xx — клиент прислал что-то не то, 5xx — сломался сервер или апстрим. Частые ловушки — путать 401 и 403 и забывать, что при создании ресурса правильнее вернуть 201 с Location, а не просто 200.