@UniverseElement

Почему Get запросы могут отправляться по 2 раза?

Есть веб-сервис - утилита общается с веб-сервером ASP.NET MVC. У большинства клиентов работает всё как ожидается, но пара клиентов ведут себя очень странно - каждый get-запрос отправляется 2 раза с разницей в несколько секунд. Судя по логам сервера утилита отправляет первый запрос с местного ip-адреса, а второй запрос повторяется с разных адресов интернет-провайдера Amazon (утилита работает на серверах расположенных в ЦОД). М.б. сталкивался кто, как такое возможно? Что может провоцировать такое странное поведение?
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 3
Это может быть по многим причинам - включенный preload на клиенте, пользователь нажал "вернуться" или обновил страницу, но в данном случае - скорей всего у пользователя стоит какое-то расширение, которое "стучит" его историю браузинга наружу, возможно даже вредоносное или наоборот это антивирус, проверяющий потенциально вредоносный контент.

Есть общее правило - GET запрос никогда не должен приводить к модифицирующим действиям на сервере. Любые модифицирующие действия должны делаться через POST или другими методами (в случае REST API).
Если все-таки необходимо чтобы это был GET, то принято дополнительно делать защиту от повторных запросов (replay), обычно к запросу добавляется последовательный номер или рандомная добавка.
Ответ написан
@UniverseElement Автор вопроса
В данном случае пользовательские действия исключены (утилита работает автоматически) и мне кажется, что даже если утилита добавит последовательный номер к запросу, то он в таком виде и продублируется.
Ответ написан
@mletov
Было приблизительно похожее. Тоже отправлял данные по API и запросы почему-то дублировались.
Оказалось, что у одного из серверов-получателей запроса долгий отклик, запрос отваливался и тут же посылался новый - помогло увеличение таймаута при отправке.
Может это и не ваш случай, но попробуйте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы