I need to write an application, which is essentially a proxy server for processing all HTTP and HTTPS requests from our server (browsing the web, etc.). I know very little C ++ and it is very convenient to write application functions in C #.
I experimented with a proxy from Mentalis (C # socket proxy), which seems to work fine for small web pages, but if I go to large sites like tigerdirect.ca and browse through multiple layers, this is very slowly, and sometimes requests are not filled, and I see broken images and JavaScript errors. This happens with all of our vendor sites and other heavy content sites.
Mentalis uses HTTP 1.0, which, as I know, is not so efficient, but should the proxy be so slow? What is the acceptable performance loss when using a proxy server? Can HTTP 1.1 make a noticeable difference?
Will a C ++ proxy be much faster than in C #? Is the mentalis code just ineffective? Will I be able to use the C ++ pre-proxy and import the C # DLLs and still get good performance, or will this project call for all C ++?
Sorry if these are obvious questions, but I haven't done network programming yet.
EDIT In response to Joshua's question: I don’t have to write the main proxy server myself if there is a good implementation, but, as I said, I experimented with Mentalis which does not work so well. The final application must be installed on a Windows PC from one installer with a manual setting of 0.
I can write all the necessary registry changes in the installer, as I did earlier in C #.
UPDATE I took the advice of the Aarons and studied the Mentalis code. I fix the problem so that it works with HTTP 1.1, allowing it to work with Chrome and Firefox (Safari 4 on Windows resets the proxy server, although for some reason).
When I tested in FireFox and Chrome, I found that there were no performance problems, which implied that the IE problem was not a proxy server problem. After resetting the browsing history settings, the problem disappeared.
Thanks everyone!