Что такое HTTP-ошибка 503 (Service Unavailable) и как её тестировать?

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

Ответ

503 Service Unavailable — статусный код HTTP, означающий, что сервер временно не может обработать запрос из-за перегрузки или проведения технических работ. Это не ошибка клиента, а указание на временную проблему на стороне сервера.

Типичные причины с точки зрения тестировщика:

  • Сервер или микросервис "упал".
  • Балансировщик нагрузки не может направить запрос на работающий инстанс.
  • Исчерпаны ресурсы (память, соединения с БД).
  • Плановое техническое обслуживание.

Как тестировать и проверять:

  1. Мониторинг и нагрузочное тестирование: Целенаправленно создавать условия, при которых сервер может начать возвращать 503.
  2. Проверка Retry-After заголовка: Сервер может (но не обязан) вернуть заголовок Retry-After, указывающий, когда повторить запрос.
    HTTP/1.1 503 Service Unavailable
    Retry-After: 3600
    Content-Type: text/html
  3. Тестирование отказоустойчивости клиента: Проверять, корректно ли клиентское приложение (или другой сервис) обрабатывает эту ошибку — использует ли retry с экспоненциальной задержкой, переключается ли на fallback-режим.
  4. Верификация логов: При получении 503 в тестах необходимо проверять логи сервера для установления точной причины.