Мне нужен способ обнаружить пропущенный ответ на длительный HTTP-запрос POST. Эта проблема возникает, когда сетевая инфраструктура (брандмауэры, прокси, отключенные кабели и т. Д.) Отбрасывает ответные пакеты. Сервер может обнаружить этот сбой, но клиент не может отправить дополнительные байты после POST для проверки состояния соединения TCP. Ошибка может быть ограничена одним TCP-соединением. Например, я могу впоследствии открыть новое TCP-соединение с сервером.
Я ищу решение, которое все еще использует HTTP POST и не меняет продолжительность обработки на стороне сервера.
Вот некоторые решения, о которых я могу подумать:
Предоставляет интерфейс побочного канала для получения истории запросов и ответов. Если в истории указан ответ как отправленный (предположительно, приводящий к ошибке TCP), но я еще не получил его в течение разумного времени, я могу выдать локальную ошибку.
Используйте заголовок X, чтобы запросить у сервера «поддельные» 100 Продолжать предварительные ответы через регулярные промежутки времени. Если я не вижу ожидаемого 100 Continue или нетрадиционного ответа, я могу выдать локальную ошибку.
Существует ли современное решение этой проблемы?