Я работаю с клиент-серверным приложением, которое использует HTTP, и моя цель - добавить в него новые функции. Я могу расширить клиент, подключив свой собственный код к некоторым конкретным событиям, но, к сожалению, сервер не настраивается. И клиент, и сервер находятся в среде Windows.
Моя текущая проблема заключается в том, что при получении большого количества данных с сервера производительность ужасна: требуется время для ее передачи и время для ее обработки. Решение может заключаться в том, чтобы приложение на стороне сервера выполняло обработку и отправляло только результат (который намного меньше). Проблема в том, что нет встроенных функций для управления ответами с сервера перед их отправкой.
Я думал прослушать весь трафик на порту 80, определить соответствующие HTTP-ответы и отправить их в мое приложение, блокируя ответ (чтобы избежать отправки огромного объема данных, который не будет обрабатываться клиентом). Поскольку мне не хватает сетевых знаний, я немного растерялся, когда думал о том, как это сделать.
Я посмотрел на некоторые низкоуровневые методы перехвата пакетов, такие как WinPCap, но, похоже, для выполнения того, что мне нужно, требуется много работы. Более того, я думаю, что с помощью этого API невозможно заблокировать или изменить ответы.
Обратный прокси-сервер, позволяющий запускать пользовательские сценарии по конкретным запросам или ответам, был бы идеальным, но мне интересно, если нет более простого способа выполнить этот перехват / отправку в другое место.
Какой самый простой и понятный метод для включения этого поведения?
Спасибо!