Повторить попытку

Retry-After — это явное указание сервера о том, когда повторная попытка может быть успешной. Оно сопровождает ошибки 429 Too Many Requests, 503 Service Unavailable и некоторые перенаправления и содержит либо количество секунд (Retry-After: 30), либо HTTP-дату. Соблюдение этого указания — это разница между восстановлением работы клиента и продлением периода ожидания.

Как это работает

Клиент анализирует значение — обе формы действительны и обе присутствуют — и планирует повторную попытку не раньше указанного срока. В случае отсутствия заголовка клиент возвращается к своей собственной политике задержки. Хорошие клиенты также ограничивают время ожидания, поэтому неправильно настроенный сервер не может заблокировать их на день.

Заблуждение

Цикл повторных попыток с фиксированной задержкой в одну секунду — это "handling 429" . Каждый клиент, выполняющий эту операцию, синхронно обращается к серверу в момент открытия окна. Функция Retry-After, если она присутствует, уже показывает правильное число; если отсутствует, используйте backoff с jitter.

Попробуйте здесь.

GET /coffee/v1/rush-hour разрешает три запроса за десять секунд и отвечает на четвертый кодом 429 и Retry-After; GET /protocol/v1/maintenance отвечает на каждый запрос кодом 503 и Retry-After: 30.

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление