Что означает HTTP статус-код 200?

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

Ответ

200 OK — это стандартный код состояния HTTP, означающий, что запрос клиента был успешно обработан сервером, и запрошенный ресурс (или результат операции) возвращается в теле ответа.

Контекст в тестировании: Это основной ожидаемый статус для успешных операций чтения (GET) и часто для операций изменения (POST, PUT, PATCH, DELETE), когда сервер возвращает данные в ответе.

Пример проверки в API-тесте (Python, pytest + requests):

import requests

def test_get_user_returns_200_and_correct_data():
    # 1. Выполняем запрос
    response = requests.get('https://api.example.com/v1/users/123')

    # 2. Проверяем статус-код (первичная валидация)
    assert response.status_code == 200, f'Ожидался 200 OK, получен {response.status_code}'

    # 3. Проверяем заголовок Content-Type
    assert 'application/json' in response.headers['Content-Type']

    # 4. Валидируем структуру и данные ответа
    user_data = response.json()
    assert isinstance(user_data, dict)
    assert user_data['id'] == 123
    assert 'name' in user_data
    # ... дальнейшие проверки по спецификации

Почему это важно для QA:

  • Базовый сценарий: Проверка кода 200 — это первый шаг в большинстве позитивных тестов API.
  • Индикатор здоровья: В smoke- или health-чеках успешный ответ 200 на ключевые эндпоинты сигнализирует о работоспособности сервиса.
  • Не гарантирует корректности данных: Код 200 означает лишь успешную обработку запроса на транспортном уровне. Обязательна последующая валидация тела ответа на соответствие контракту (JSON Schema) и бизнес-правилам.