Какие знаешь коды ошибок?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Коды ошибок HTTP
Коды статусов HTTP — это трехзначные числа, которые сервер возвращает в ответе на запрос клиента. Они указывают на результат обработки запроса: успешно ли он выполнен, какая произошла ошибка и какие действия требуются. QA инженер должен хорошо ориентироваться в этих кодах для правильного тестирования и отладки.
Коды 2xx (Успех)
200 OK Самый распространенный код успеха. Запрос выполнен успешно, ответ содержит запрашиваемые данные. Используется для GET, POST, PUT, PATCH.
201 Created Ресурс успешно создан. Обычно возвращается в ответ на POST запрос. В заголовке Location часто указывается адрес нового ресурса.
204 No Content Запрос выполнен успешно, но нет содержимого для возврата. Используется для DELETE или обновлений, которые не требуют возврата данных.
206 Partial Content Сервер возвращает только часть ресурса. Используется при скачивании больших файлов с поддержкой resume (докачивание).
Коды 3xx (Перенаправление)
301 Moved Permanently Ресурс навсегда перемещен на новый адрес. Браузер должен обновить закладки и ссылки на новый URL. Поисковики учитывают редирект.
302 Found (Moved Temporarily) Ресурс временно находится по другому адресу. После редиректа можно вернуться на старый адрес. Это временное перенаправление.
303 See Other Перенаправляет на другой ресурс, обычно после POST запроса. Браузер всегда использует GET для новой ссылки.
304 Not Modified Ресурс не изменился с момента последнего запроса (используется кэширование на основе ETag или Last-Modified). Сервер не отправляет тело ответа.
307 Temporary Redirect Временное перенаправление, но метод запроса остается прежним (в отличие от 302).
308 Permanent Redirect Постоянное перенаправление, метод запроса не меняется (в отличие от 301).
Коды 4xx (Ошибки клиента)
400 Bad Request Ошибка в синтаксисе запроса. Сервер не может обработать запрос из-за ошибки в формате данных, невалидного JSON, отсутствия обязательных параметров.
401 Unauthorized Требуется аутентификация. Пользователь не предоставил учетные данные или они неправильные. Нужно отправить заголовок Authorization.
403 Forbidden Сервер понял запрос, но отказывает в доступе. У пользователя нет прав на этот ресурс. Различие: 401 — не аутентифицирован, 403 — аутентифицирован, но не авторизован.
404 Not Found Ресурс не найден. Запрашиваемый URL не существует на сервере. Очень частый код при ошибках в тестировании.
405 Method Not Allowed Метод HTTP не разрешен для этого ресурса. Например, POST на endpoint, который поддерживает только GET.
409 Conflict Конфликт при выполнении запроса. Например, попытка создать ресурс с уникальным полем, которое уже существует. Также может быть при конфликтах версий.
410 Gone Ресурс удален безвозвратно и больше не будет доступен. Отличается от 404 тем, что ресурс точно существовал, но теперь его нет.
429 Too Many Requests Слишком много запросов. Клиент превысил rate limit. Сервер временно отказывает в обработке. Нужно подождать перед отправкой новых запросов.
431 Request Header Fields Too Large Заголовки запроса слишком большие. Сервер отказывает обработку.
Коды 5xx (Ошибки сервера)
500 Internal Server Error Внутренняя ошибка сервера. Что-то сломалось на сервере, но детали ошибки не раскрываются. Очень частая ошибка при отладке.
501 Not Implemented Функциональность не реализована. Сервер не поддерживает запрашиваемый метод или функцию.
502 Bad Gateway Ошибка gateway или proxy. Промежуточный сервер (proxy, load balancer) не может получить ответ от upstream сервера.
503 Service Unavailable Сервис недоступен. Сервер временно не может обработать запросы (обслуживание, перегрузка, недостаточно ресурсов). Обычно возвращается с заголовком Retry-After.
504 Gateway Timeout Timeout на gateway или proxy. Upstream сервер не ответил вовремя.
505 HTTP Version Not Supported Версия HTTP не поддерживается.
Практические примеры для тестирования
Тестирование аутентификации:
- 401 при отсутствии токена
- 403 при недостаточных правах
- 200 при корректных учетных данных
Тестирование валидации:
- 400 при пустом обязательном поле
- 400 при невалидном формате email
- 409 при попытке создания дубликата
Тестирование масштабируемости:
- 429 при превышении rate limit
- 503 при перегрузке сервера
Тестирование интеграции:
- 502/504 при недоступности upstream сервиса
- 500 при ошибке обработки запроса
Знание этих кодов критично для быстрой отладки и правильного составления тестовых сценариев. В Postman можно легко проверять коды статусов через скрипты в разделе Tests.