← Назад к вопросам

Какие знаешь распространённые четырёхсотые ошибки?

1.0 Junior🔥 221 комментариев
#Работа с дефектами#Теория тестирования#Тестовая документация

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Распространённые HTTP ошибки 4xx

HTTP ошибки 4xx (Client Error) указывают, что проблема возникла на стороне клиента (например, браузера или приложения). Эти коды означают, что сервер не может выполнить запрос из-за некорректных действий пользователя или неправильно составленного запроса. Знание этих ошибок критически важно для QA Engineer, поскольку они часто возникают при тестировании веб-приложений и API, и их анализ помогает локализовать дефекты в клиентской логике или конфигурации.

Основные ошибки и их причины

400 Bad Request

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

  • Примеры причин: Неверный формат JSON в теле запроса, отсутствующие обязательные заголовки, неправильная кодировка.
  • Пример для тестирования API:
import requests

# Неправильный JSON (лишняя запятая)
invalid_json = '{"name": "John", "age": 30,}'
response = requests.post('https://api.example.com/users', data=invalid_json)
print(response.status_code)  # Вероятно, 400

401 Unauthorized

Ошибка аутентификации. Клиент не предоставил необходимые учётные данные или они неверны.

  • Примеры: Отсутствие токена Authorization, неверный логин/пароль, просроченный сессионный ключ.
  • Важно: Часто отличается от 403 Forbidden (401 — "ты неизвестен", 403 — "ты известен, но нет прав").

403 Forbidden

Сервер понял запрос, но отказывается его выполнить из-за недостатка прав.

  • Примеры: Попытка доступа к административной странице обычным пользователем, ограничение по IP-адресу.
  • Тестовый сценарий: Проверить доступ разных ролей пользователей (user, admin, guest) к защищённым ресурсам.

404 Not Found

Очень известная ошибка. Сервер не нашёл запрашиваемый ресурс.

  • Причины: Неверный URL, удалённая страница, ошибка в маршрутизации (роутинге) приложения.
  • Для QA: Проверка всех публичных ссылок сайта, тестирование API endpoints после изменений.

405 Method Not Allowed

HTTP метод не разрешён для данного ресурса.

  • Пример: Попытка отправки POST запроса на endpoint, который принимает только GET.
  • Код для проверки:
// Пример с использованием fetch API
fetch('https://api.example.com/data', { method: 'PUT' })
  .then(response => {
    if (response.status === 405) {
      console.error('Method PUT not allowed here');
    }
  });

408 Request Timeout

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

  • Частая причина: Проблемы с сетью клиента, слишком большие файлы для upload на медленном соединении.

409 Conflict

Запрос конфликтует с текущим состоянием ресурса на сервере.

  • Классический пример: Попытка обновления данных, которые уже были изменены другим пользователем (конфликт версий), или создание дублирующего ресурса (например, пользователя с уже существующим email).
  • Актуально для систем с параллельным редактированием.

429 Too Many Requests

Клиент превысил лимит запросов. Используется для защиты от DDoS и brute-force атак.

  • Реализация: Rate Limiting (ограничение по количеству запросов в секунду/минуту).
  • Тестирование: Проверить поведение системы при интенсивных автоматизированных запросах.

Практическое значение для QA

Понимание 4xx ошибок позволяет:

  • Эффективно анализировать логи приложения и сервера.
  • Составлять точные баг-репорты с указанием конкретного кода и контекста.
  • Тестировать обработку ошибок на стороне клиента (правильные сообщения для пользователя).
  • Проверять безопасность: например, убедиться, что попытка доступа к /admin без прав возвращает 403, а не 404 (что может скрыть существование ресурса).
  • Валидировать API: использовать статусы как критерий корректности работы endpoints в тестах автотестов.

В современном API-тестировании (REST, GraphQL) проверка ожидаемых HTTP статусов является базовым элементом тест-кейсов. Например, успешное создание ресурса должно возвращать 201 Created, а попытка создать его с невалидными данными — 400 Bad Request. Мониторинг и анализ этих ошибок в production также помогает выявлять проблемы с клиентскими приложениями или некорректное использование API.

Какие знаешь распространённые четырёхсотые ошибки? | PrepBro