Что означает HTTP-статус 503 Service Unavailable?

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

Ответ

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

Ключевая особенность: Ошибка носит временный характер. Клиенту следует повторить запрос позже.

Типичные причины:

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

Заголовок Retry-After: Сервер может указать, когда стоит повторить запрос, с помощью опционального заголовка Retry-After.

HTTP/1.1 503 Service Unavailable
Retry-After: 120
Content-Type: application/json

{"error": "System under maintenance", "estimated_recovery": "2023-10-05T15:00:00Z"}

Retry-After может содержать:

  • Количество секунд (как в примере выше).
  • Дату и время в формате HTTP-date.

Действия при тестировании:

  1. Проверить логи сервера и мониторинг.
  2. Убедиться, что клиентское приложение корректно обрабатывает этот статус (не считает его фатальной ошибкой) и соблюдает Retry-After.
  3. В рамках нагрузочного тестирования — выявить порог, при котором сервер начинает отдавать 503.