Я хотел бы узнать ваше мнение/комментарии относительно этой концепции. Если имеется альтернатива? И если это будет осуществимо/полезно?Идея: генерировать несколько ответов HTTP с использованием одного запроса HTTP
Согласно моему пониманию, для каждого HTTP-запроса сервер выполняет некоторую операцию и отправляет ответ http.
Теперь рассмотрим любой сценарий, в котором мы хотим иметь больший контроль над процессом, выполняющимся на сервере.
Ситуация 1: http request send -> обработка запуска сервера (длительная задача в процессе) -> пользователь закрывает браузер. Здесь процесс по-прежнему выполняется, потребление клиента и ответа HTTP будет проигнорировано на клиенте.
Здесь ресурсы теряются.
Ситуация 2: HTTP запрос на отправку -> сервер начинает обработку (длинная задача в процессе)
Здесь клиент не знает о состоянии процесса, запущенного на сервере. Клиент должен дождаться ответа HTTP-ответа.
Моя идея: между первоначальным HTTP-запросом и окончательным ответом на HTTP добавьте функцию отправки нескольких промежуточных ответов HTTP, которые будут содержать информацию о процессе, выполняющемся на сервере.
Решение Ситуация 1: HTTP запрос на отправку -> обработка запуска сервера (длинный задача в процессе) -> [возвращает идентификатор процесса в качестве промежуточного ответа HTTP] -> пользователь закрывает браузер -> [Написать http-запрос для закрытия серверного процесса с использованием идентификатора процесса]
Решение для ситуации 2: http-запрос отправляет -> сервер начинает обработку (длительная задача в процессе) -> [возвращает http-ответы с подробной информацией о процессе, выполняющемся на сервер с интервалом времени] -> [выполнить любую операцию, если необходимо]
Прошу прокомментировать :) и исправьте, если мне что-то не хватает.
Обычно это делается путем возврата 202 Принимается с заголовком 'Location', в котором говорится, куда искать результаты. Если вы хотите продолжить обновление, используйте WebSockets. Определение вашего собственного HTTP, вероятно, не является эффективным маршрутом вперед, и SO не может действительно помочь вам в этом процессе; мы не отвечаем за протокол. – jonrsharpe
Звучит чисто и просто. Пойдите, реализуйте это. –
@RolandIllig Я не думаю, что особенно конструктивно отправлять OP с помощью «go do it», когда они явно не понимают масштабов задачи. – jonrsharpe