Шпаргалка по статус-кодам для тестировщика

Быстрый справочник по самым важным кодам ответов сервера, которые должен знать каждый тестировщик.

1xx: Информационные

Запрос получен сервером, и процесс его обработки продолжается. Эти коды встречаются редко и носят чисто технический характер.

100 Continue

Сервер получил заголовки запроса и готов принять тело запроса. Клиент может продолжать отправку.

101 Switching Protocols

Сервер согласен переключить протокол (например, с HTTP на WebSocket).

2xx: Успех

Запрос был успешно получен, понят и обработан сервером. Это то, что мы хотим видеть в позитивных тестах.

200 OK

Классический "успех". Означает, что запрос выполнен корректно. Ответ будет содержать запрошенные данные.

201 Created

Запрос успешно выполнен, и в результате был создан новый ресурс (например, новый пользователь или заказ).

204 No Content

Сервер успешно обработал запрос, но ему нечего возвращать в теле ответа (например, после успешного удаления ресурса).

3xx: Перенаправление

Клиенту необходимо предпринять дополнительные шаги для завершения запроса, чаще всего — перейти по другому URL.

301 Moved Permanently

Запрошенный ресурс был навсегда перемещен на новый URL. Браузеры и поисковики запомнят этот редирект.

302 Found

Ресурс временно находится по другому URL. В отличие от 301, клиент должен продолжать использовать исходный URL для будущих запросов.

304 Not Modified

Используется для кэширования. Означает, что ресурс не изменился с момента последнего запроса, и клиент может использовать свою локальную копию.

4xx: Ошибка клиента

Запрос не может быть выполнен из-за ошибки на стороне клиента (неверный синтаксис, отсутствие прав, несуществующий ресурс).

400 Bad Request

Сервер не может обработать запрос из-за синтаксической ошибки (например, неверный формат JSON или отсутствующее обязательное поле).

401 Unauthorized

Это про аутентификацию ("Кто вы?"). Сервер не знает, кто вы, или не верит вашим "документам" (токену, паролю).

Пример теста: отправить запрос к защищенному эндпоинту без хедера `Authorization` или с неверным токеном.

403 Forbidden

Это про авторизацию ("Что вам можно делать?"). Сервер вас опознал, но у вашей роли недостаточно прав для этого действия.

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

404 Not Found

Самый известный код. Сервер не может найти запрошенный ресурс. Либо URL неверный, либо ресурс был удален.

409 Conflict

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса (например, попытка создать пользователя с уже существующим email).

418 I'm a teapot

Этот код — "пасхальное яйцо" из первоапрельской шутки 1998 года. Сервер-чайник отказывается варить кофе.

5xx: Ошибка сервера

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

500 Internal Server Error

Общая ошибка, которая означает, что на сервере что-то пошло не так, но он не может уточнить, что именно. Классический "сервер упал".

501 Not Implemented

Сервер не поддерживает функциональность, необходимую для выполнения запроса (например, использован неподдерживаемый HTTP-метод).

502 Bad Gateway

Сервер, выступая в роли шлюза, получил недействительный ответ от вышестоящего сервера (например, от микросервиса, к которому он обратился).

503 Service Unavailable

Сервер временно не может обрабатывать запросы из-за перегрузки или технического обслуживания. Стоит попробовать повторить запрос позже.

504 Gateway Timeout

Сервер-шлюз не дождался ответа от вышестоящего сервера в установленное время. Проблема в медленной работе другого сервиса.