|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Добрый день! Есть десктопное приложение, которое обращается к файловому сервису через компонент TIdHttp и с помощью метода POST получает ответ в формате JSON. JSON-параметр "file_data" содержит тело файла в кодировке BASE64. В компании создали клон проекта, настроили отдельные сервера (в облаке). СУТЬ ПРОБЛЕМЫ При обращении к базовому сервису - все работает отлично. При обращении к клону через TChromium.Browser.MainFrame.LoadRequest (компоненты CEF4) - срабатывает от 1 до 3 миллисекунд. При обращении к клону через TIdHttp - наблюдается задержка получения ответа (до 15 секунд для файла размером 495 КБ)! TIdHttp пробовал использовать как из кода, так и на форму бросал. Эффект одинаково плохой. Никаких спец.настроек для компонента не произвожу. Понимаю, что проблема вероятнее всего в окружении, но админы крест на пузе рисуют и говорят, что единственное отличие это то, что старые сервера распределенные (физически разные), а новые в одном дата-центре и одном облаке. Знающие люди, подскажите пожалуйста, может быть есть какая-то настройка в самом Indy? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 10:53 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 10:53 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 10:53 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
KinsT_UA но админы крест на пузе рисуют и говорят, что единственное отличие это то, что старые сервера распределенные (физически разные), а новые в одном дата-центре и одном облаке. Хромом проверяешь и отдаешь результат админам. Пусть работу работают, а не кресты рисуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 10:57 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
wadman KinsT_UA но админы крест на пузе рисуют и говорят, что единственное отличие это то, что старые сервера распределенные (физически разные), а новые в одном дата-центре и одном облаке. Хромом проверяешь и отдаешь результат админам. Пусть работу работают, а не кресты рисуют. В том-то и дело, что из браузера Хром на новом сервере, срабатывает моментально. Конкретно Инди странно работает :( Может быть какой-то либы не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 11:11 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
KinsT_UA wadman пропущено... Хромом проверяешь и отдаешь результат админам. Пусть работу работают, а не кресты рисуют. В том-то и дело, что из браузера Хром на новом сервере, срабатывает моментально. Конкретно Инди странно работает :( Может быть какой-то либы не хватает? Инди она такая... Порой дико глючная, но в целом, да - странная, вне зависимости от версии :) Лучше уже что то другое выберите. Из бесплатного еще ICS и SYNAPSE есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 11:13 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Весьма хорош TNetHttpClient, который из коробки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 11:37 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
asutp2, +1 TIdHttp - не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 11:39 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
asutp2 Весьма хорош TNetHttpClient, который из коробки Кстати, да: https://webdelphi.ru/2019/02/http-client-api-v-delphi/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 12:33 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Возможно, сервер не отдает content-length, но на старом сервере рвет коннект, а на новом keep-alive. Вот клиент и ждет у моря погоды. Сравни полный дамп сеансов. Еще для исключения влияния протокола можно попробовать отправлять запрос через голый сокет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 14:08 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Запротоколируйте обмен между Indy и старым сервером и новым сервером. Найдите, в чём разница. Может редирект какой-нибудь появился. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 14:27 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Доброе утро! Огромное спасибо всем, кто поучаствовал! Как писали asutp2, rgreat и Softologic , попробовали TNetHttpClient - работает отлично! На всякий случай скачал и другие компоненты ) Fr0sT-BrutalВозможно, сервер не отдает content-length, но на старом сервере рвет коннект, а на новом keep-alive. Вот клиент и ждет у моря погоды. Сравни полный дамп сеансов. Чем можно такой дамп отследить? Дайте что-нибудь на почитать об этом, пожалуйста! DmSerЗапротоколируйте обмен между Indy и старым сервером и новым сервером.Тот же вопрос: чем/как это осуществить? Мы ставили снифер и пытались пакеты смотреть, по итогу: "очень интересно, но ничего не понял" (ц) :) DmSerМожет редирект какой-нибудь появился. Доп. редиректов нет. Смотрели через tracert . На новом серваке даже меньше переходов, чем на старом Оо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 09:46 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
KinsT_UA Чем можно такой дамп отследить? KinsT_UA очень интересно, но ничего не понял ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 10:18 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Если соединение не через TLS, то SmSniff очень простой и понятный сниффер. Если TLS, то чуть сложнее - Wireshark с установкой их сертификата. Будет много инфы со всех сетевых уровней, но надо искать HTTP команды. Мануалов в сети много ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 10:25 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal Wireshark с установкой их сертификата. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 11:10 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
_Vasilisk_ Fr0sT-Brutal Wireshark с установкой их сертификата. Гениальная штука https! Вроде всё шифрует, хрен влезешь. Про при большом желании ставишь свой сертификат и все видно! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 12:12 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
DmSer Вроде всё шифрует, хрен влезешь. В итоге ничего не шифрует. Это как налог на ТКО. Денег собрали, а смысла-то и нет. Я на телефоне могу посмотреть трафик любого приложения. Будь то хоть банк, хоть еще какое-то "важное" приложение. Да и любой может. Афера мирового масштаба. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 12:16 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
KinsT_UA DmSerЗапротоколируйте обмен между Indy и старым сервером и новым сервером. Тот же вопрос: чем/как это осуществить? Мы ставили снифер и пытались пакеты смотреть, по итогу: "очень интересно, но ничего не понял" (ц) :) В составе Indy есть компонент для логгирования (вроде TIdLog, но могу ошибаться). Также есть Handler'ы, в которых можно ловить весь (или почти весь) обмен. Ещё можно через Fiddler логгировать. В этом случае для IdHTTP нужно указать имя и порт прокси. Но Fiddler собака сейчас стал платным. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 12:26 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
_Vasilisk_ Fr0sT-Brutal Wireshark с установкой их сертификата. Да, причем и портабельная версия тоже DmSer Гениальная штука https! Вроде всё шифрует, хрен влезешь. Про при большом желании ставишь свой сертификат и все видно! wadman В итоге ничего не шифрует. Это как налог на ТКО. Денег собрали, а смысла-то и нет. Всё он шифрует. Но ведь странно как-то иметь непонятный трафик на своей машине и не мочь его посмотреть. И потом, если у клиента есть cert pinning, то хренушки что-то выйдет со сниффингом. Хотя, наверно, можно подменить домен через hosts или DNS, и сделать серт на это доменное имя. Тогда, если клиент не совсем уж паранойный и не проверяет цепочки сертов, может прокатить. Также, если клиент особо не заморачивается с проверкой, можно сделать простейший TLS=>TLS ретранслятор, который бы писал весь трафик. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 15:32 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal И потом, если у клиента есть cert pinning, то хренушки что-то выйдет со сниффингом Хочешь сказать, что банковские приложения создают люди, которые не в теме? Иначе как я смотрю трафик их приложений на телефоне? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 15:35 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
HTTP Analyzer v7 мне нравиться, а для остального WireShark ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 17:09 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
wadman Хочешь сказать, что банковские приложения создают люди, которые не в теме? Иначе как я смотрю трафик их приложений на телефоне? Не боги горшки обжигают. Стряпать приложухи тяп-ляп и всех насильно на них пересаживать много ума не надо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 17:11 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
Из интересного в продолжение темы :) Когда попробовали через протокол HTTPS, то всё срабатывает за 1 секунду даже при базовой реализации через Indy. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2021, 11:37 |
|
Странное поведение Indy (TIdHttp)
|
|||
---|---|---|---|
#18+
То есть у вас до этого был простой открытый HTTP и ты до сих пор не сравнил дампы запросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2021, 13:59 |
|
|
start [/forum/topic.php?fid=58&msg=40097487&tid=2037021]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 425ms |
0 / 0 |