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