Мне нужно написать приложение, которое по сути является прокси-сервером для обработки всех запросов HTTP и HTTPS с нашего сервера (просмотр веб-страниц и т. Д.).Я очень мало знаю C ++, и мне очень удобно писать функции приложения на C #.
Я экспериментировал с прокси из Mentalis (прокси-сокет C #), который, кажется, отлично работает для небольших веб-страниц, ноесли я захожу на большие сайты, такие как tigerdirect.ca, и просматриваю пару слоев, то это очень медленно, иногда запросы не завершаются, и я вижу неработающие изображения и ошибки JavaScript.Это происходит со всеми сайтами наших поставщиков и другими сайтами с большим содержанием.
Mentalis использует HTTP 1.0, который, как я знаю, не так эффективен, но прокси должен быть таким медленным?Какова приемлемая величина потери производительности при использовании прокси?Будет ли HTTP 1.1 иметь заметную разницу?
Будет ли прокси C ++ намного быстрее, чем прокси в C #?Код Mentalis просто не эффективен?Смогу ли я использовать предварительно созданный прокси-сервер C ++ и импортировать DLL в C # и при этом получить хорошую производительность, или этот проект потребует всего C ++?
Извините, если это очевидные вопросы, но я раньше не занимался сетевым программированием.
РЕДАКТИРОВАТЬ В ответ на вопрос Джошуа: мне не обязательно писать основной прокси-сервер сам, если есть хорошая реализация, но, как я уже сказал, я былэкспериментируя с Mentalis, который не так хорош.Окончательное приложение должно быть установлено на ПК с Windows / Server с одного установщика с ручной настройкой 0.
Я могу написать все необходимые изменения реестра в установщике, как я делал это раньше в C #.
ОБНОВЛЕНИЕ Я воспользовался советом Ааронаута и занялся улучшением кода Mentalis.Я исправил проблему, так что он работает с HTTP 1.1, что позволяет ему работать с Chrome и Firefox (Safari 4 в Windows сбивает прокси-сервер, хотя по некоторым причинам).
Когда я тестировал в FireFox и Chrome, я обнаружил, что проблем с производительностью не было, что означало, что это проблема IE, а не прокси.После сброса настроек истории просмотра проблема ушла.
Спасибо всем!