Что означает и как обрабатывать HTTP-статус 200?

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

Ответ

HTTP-статус 200 OK — это код успешного выполнения запроса, а не ошибка. Проблема возникает, когда при этом статусе клиент получает некорректные или неожиданные данные.

Порядок диагностики и исправления:

  1. Проверьте тело ответа (Response Body): Убедитесь, что данные соответствуют заявленному формату (JSON, XML) и структуре.
  2. Валидируйте содержимое: Даже при валидном формате данные могут быть логически неверными (например, пустой массив вместо ожидаемых объектов).
  3. Анализ клиентской логики: Убедитесь, что код на стороне клиента корректно обрабатывает успешный ответ.

Пример теста на JavaScript (с использованием Fetch API и Jest):

test('GET /api/users возвращает 200 и валидный JSON-массив', async () => {
  const response = await fetch('https://api.example.com/users');
  // Проверка статуса
  expect(response.status).toBe(200);
  // Проверка заголовка Content-Type
  expect(response.headers.get('content-type')).toContain('application/json');
  // Парсинг и проверка структуры данных
  const data = await response.json();
  expect(Array.isArray(data)).toBe(true);
});

Best Practice: Всегда проверяйте не только статус, но и структуру, типы данных и бизнес-логику в ответе.