我必须编写一个本质上是代理服务器的应用程序来处理来自我们服务器的所有HTTP和HTTPS请求(Web浏览等).我对C++知之甚少,并且很乐意在C#中编写应用程序功能.
我已经尝试使用Mentalis的代理(C#套接字代理),它似乎适用于小型网页,但是如果我去像tigerdirect.ca这样的大型网站并浏览几层,那么它很慢,有时请求无法完成我看到破碎的图像和javascript错误.所有供应商站点和其他内容繁重的站点都会发生这种情况.
Mentalis使用HTTP 1.0,我知道它不是那么有效但是代理应该那么慢吗?使用代理可以承受的性能损失是多少?HTTP 1.1会有明显的区别吗?
C++代理会比C#中的代理快得多吗?Mentalis代码效率不高吗?我是否能够使用预制的C++代理并将DLL导入C#并仍然获得良好的性能,或者该项目是否会调用所有C++?
很抱歉,如果这些是明显的问题,但我之前没有做过网络编程.
编辑回应约书亚的问题:我不一定需要自己编写核心代理服务器,只要有一个很好的实现,但就像我说我一直在试验那些表现不佳的Mentalis.最终的应用程序需要从单个安装程序安装在Windows PC/Server上,手动配置为0.
我可以在安装程序中编写所有必要的注册表编辑,就像我之前在C#中所做的那样.
更新我接受了Aaronaught的建议,并研究改进Mentalis的代码.我修复了一个问题,因此它适用于HTTP 1.1,允许它与Chrome和Firefox一起使用(Windows上的Safari 4因某些原因导致代理崩溃).
当我在FireFox和Chrome中测试时,我发现性能问题并不存在,这意味着IE问题不是代理问题.重置浏览历史记录设置后问题就消失了.
感谢大家!