Как клиенту гарантированно знать что ответ дошел до сервера? Клиент отправляет GET запрос серверу.
Сервер получет его, производит определенную операцию, и отправляет ответ, что запрос был получен а операция выполнена.
Но допустим происходит кратковременное падение сети, пока запрос летит серверу, либо когда ответ сервера летит клиенту.
В итоге клиент оправил запрос серверу а ответа не получил. "истекло время ожидания".
Как клиенту точно знать, была ли выполнена нужная операция на сервере или нет?
Можно конечно повторно отправить этот запрос, но тогда операция может быть выполнена дважды, а нам этого тоже не нужно.

30 Авг 2019 в 19:47
371 +1
0
Ответы
1

Для гарантированной доставки ответа от сервера клиенту можно использовать механизмы подтверждения доставки сообщений, такие как протокол TCP.

При использовании HTTP протокола, клиент может отправить запрос с параметром id, который будет уникальным для каждого запроса. Сервер, получив запрос, выполнит операцию и отправит ответ, в котором также будет содержаться id запроса. Клиент сможет проверить совпадение id запроса и ответа, чтобы быть уверенным, что ответ получен и операция выполнена.

Если ответ не был получен из-за ошибки в сети, то клиент может повторно отправить запрос, указав, что это повторный запрос с помощью специального параметра. При этом сервер должен быть реализован с возможностью обработки повторных запросов и корректно обрабатывать их, чтобы избежать выполнения операции дважды.

Другим вариантом является использование механизмов кэширования либо проверки состояния операции с помощью других запросов к серверу. Например, клиент может отправить запрос для получения текущего статуса операции или отправить дополнительный запрос с предикатом операции для проверки выполнения операции.

Таким образом, с помощью сочетания уникальных идентификаторов запросов, механизмов повторной отправки запросов и проверки статуса операции клиент может быть уверен в выполнении нужной операции на сервере.

20 Апр в 05:41
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 989 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир