Какие основные классы HTTP статус-кодов вы знаете?

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

Ответ

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

Класс Описание Ключевые примеры
1xx (Информационные) Запрос получен, процесс продолжается. 100 Continue — сервер готов принять тело запроса.
2xx (Успешные) Запрос успешно обработан. 200 OK — стандартный ответ для успешных запросов.
201 Created — ресурс создан (часто после POST).
204 No Content — успешно, но тело ответа отсутствует.
3xx (Перенаправления) Для завершения запроса требуются дальнейшие действия (часто — редирект). 301 Moved Permanently — ресурс навсегда перемещен по новому URL.
302 Found — ресурс временно доступен по другому адресу.
4xx (Ошибки клиента) Ошибка на стороне клиента (неверный запрос). 400 Bad Request — сервер не понял запрос из-за неверного синтаксиса.
401 Unauthorized — требуется аутентификация.
403 Forbidden — доступ запрещен (нет прав).
404 Not Found — ресурс не найден.
5xx (Ошибки сервера) Сервер не смог выполнить корректный запрос. 500 Internal Server Error — общая ошибка сервера.
502 Bad Gateway — сервер, выступая в роли шлюза, получил недопустимый ответ.
503 Service Unavailable — сервер временно перегружен или на обслуживании.

Пример проверки в автотесте (Python + requests):

import requests

response = requests.get('https://api.example.com/users')
# Проверяем, что запрос успешен
assert response.status_code == 200, f'Ожидался статус 200, получен {response.status_code}'
# Или проверяем на успешный класс кодов (2xx)
assert response.ok == True