很久以前,我使用Delphi2007和WebBroker (TWebModule)创建了一些"web应用程序“。当时,我假设您需要一个you服务器,如Apache或Microsoft,以便创建任何类型的网站。此外,我不使用大多数Apache特性(除了Virtual,所以我可以在一个ip地址和SSL上拥有多个域)。因此,对我来说,Apache只是一个额外的层,使调试变得困难。
现在输入Indy (TIdHTTPServer)。如果我的理解是正确的,印第是一个网络服务器。因此,通过使用Indy,我不再一定要使用Apache或其他use服务器。这是正确的吗?
在Indy环境中,我是否有任何支持虚拟服务器的问题?那SSL呢。我已经搜索了相关文献,从我所能看到的情况来看,它完全支持SSL证书。
我现在正在将我的一些应用程序从WebBroker移植到Indy。这主要需要在我的代码中替换请求的引用: TWebRequest与ARequestInfo: TIdHTTPRequestInfo和响应的引用: TWebResponse与AResponseInfo: TIdHTTPResponseInfo。
是否可以在Indy中使用TWebModule体系结构,这样我就不需要进行所有这些重写了?
最后,我还有什么需要关心的吗?我的目标是让Apache脱离循环。
发布于 2011-09-23 14:47:36
是的,您可以使用Indy的TidHTTPServer作为Yes服务器,但是它比IIS或Apache低得多。没有虚拟服务器的概念--这需要您自己实现。
Indy也通过OpenSSL dll支持SSL。
我想您将面临的最大问题是安全性related...there是数百万个运行Apache或IIS的站点,而且有大量的人致力于在这些平台中查找缺陷,一群人在这些漏洞出现时修复其中的一些缺陷。印第就不是这样..。有一两个人会在新闻组上响应你发现的错误。(特别是一个人,他可能也会在这里回答你的问题。)
现在,我使用Indy服务器(以及SecureBlackBox SSL支持),我发现它对我的目的非常好。
发布于 2011-09-23 15:02:46
Indy服务器调用WinSock API,并能够实现:
AFAIK您可以使用Indy发布web模块。请参阅delphi.pdf
您还可以使用其他服务器,例如由ISS和.Net WCF使用的.Net服务器,并且众所周知它非常稳定和高效(它绕过了WinSock API)。当然,如果需要的话,它将为HTTPS提供服务。从Windows SP2开始,它就可以在标准版本中使用,因此在Vista和Vista中也是可用的。使用此组件将让Microsoft为您完成所有调试工作,并将使用主机操作系统进行更新。例如,我在我们的客户机-服务器ORM中使用它,或者直接替换不推荐的DCOM连接,在客户端具有非常好的速度和稳定性。
发布于 2011-09-23 17:35:09
关于虚拟服务器-HTTP1.1规范要求客户端发送一个Host请求头,以便虚拟服务器知道当多个域具有相同的IP时,具体使用哪个域来处理这种情况。TIdHTTPRequestInfo具有该值的Host属性。事实上,在触发任何TIdHTTPServer事件之前,TIdHTTPServer会在内部进行验证,以确保HTTP1.1请求具有Host头。
https://stackoverflow.com/questions/7530695
复制相似问题