Истекло время ожидания запроса

Тайм-аут — это собственный крайний срок, установленный клиентом. Без него запрос к серверу, который никогда не отвечает, может удерживать соединение, поток и терпение пользователя бесконечно. Тайм-ауты обычно состоят из нескольких частей: время ожидания подключения, время ожидания первого байта и общее время обмена данными.

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

Когда истекает срок, клиент прерывает работу и сообщает об ошибке — в браузере через AbortController, в большинстве библиотек как исключение по истечении времени ожидания. Каждый промежуточный узел имеет свой собственный: браузер, CDN, балансировщик нагрузки, шлюз и приложение. Когда внутренний таймаут превышает внешний, внешний слой сдаётся первым, и работа внутри продолжается без ожидания.

Заблуждение

Возможно, запрос с истекшим временем ожидания не произошел. Сервер мог получить его и завершить обработку после того, как клиент перестал его принимать; возможно, заказ был создан с помощью POST-запроса с истекшим временем ожидания. Рассматривайте истечение времени ожидания как "unknown outcome" и обеспечьте безопасность повторных попыток записи с помощью ключа идемпотентности.

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

Запрос GET /protocol/v1/gateway-timeout ожидает около трех секунд, прежде чем получить ответ 504, а запрос GET /pizza/v1/oven/preheat занимает около трех секунд, прежде чем завершиться успешно — установите двухсекундный тайм-аут клиента и сравните результаты в каждом случае.

Источники

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

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

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

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