delphi - 独立 Web 服务器与 Apache/IIS

标签 delphi http web-applications webserver

我正在使用 win32 和 Web 访问开发一个相当复杂的应用程序。服务器端实现是自定义的,它将托管在我们公司。 HTTP 服务器可以实现为独立的 Indy(或其他)HTTP 服务器,或者更传统地使用 Apache/IIS。

我想知道独立 HTTP 服务器与 Apache/IIS 在安全性或您认为相关的任何其他方面的优势/劣势。

最佳答案

我会说这取决于您的需求和期望。如果您正在编写一个甚至可能支持 ISAPI 等的自定义纯 http 服务器,或者您正在编写高度特化的 http 服务器/代理等...,这将是一个很大的区别,这些服务器只执行狭窄的专业任务。例如我有这样一个专门的代理和一个专门的 ISAPI 模块处理框架。我要说的好处不在少数。所以优点是:

  1. 易于部署。尝试将 apache 与您的应用程序一起部署到每台机器上
  2. 更好的性能,更小的内存占用。尝试在低端笔记本电脑上使用 Apache
  3. 更好的安全性。因为您只执行狭窄的任务,所以违规的可能性要小得多。 Apache 做到了这一切,因此违规的可能性要高得多。
  4. 完全控制此类服务器的运作并控制代码。如果您需要稍微不同的行为或新功能,您就可以满足。
  5. 如果您像我一样运行 ISAPI 模块,则可以在单独的进程中对它们进行沙盒处理并获得更好的稳定性。如果一个模块/请求崩溃,其他模块/请求不会受到伤害。

缺点:

  1. 编写另一个 http 服务器
  2. 从零开始学习协议(protocol)和内部运作
  3. 错误的数量和出错的可能性更高,因为代码还没有经过严格的考验。这需要时间来适应。
  4. 因为你的关注点狭窄,所以相比之下,你不如 Apache 多才多艺。不一定如前所述不好。

我的判断是这样的。如果您只需要一个普通的 http 服务器来提供一些内容,并且您将在内部将其托管在一台或几台服务器上,请选择 Apache。如果你正在制作一个专门的 http 处理代码,那将被安装很多并且你需要控制,然后开发你自己的。相信我,花时间是值得的。我现在很高兴,当我们决定同样的事情时,我坚持了这一点。现在我有很多笔记本电脑安装的软件非常复杂,我无法想象必须在每台笔记本电脑上安装 Apache。然后将其配置为按我的需要工作。

而且 Indy(尽管存在所有问题和怪癖)已被证明是一个非常稳定的开箱即用网络服务器。 ICS 在这里可能是一样的,但我还没有用过它,所以我不能说。设置 Indy HTTP 服务器非常简单。

只是我的两分钱;)

关于delphi - 独立 Web 服务器与 Apache/IIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038060/

相关文章:

delphi - 如何检索 Windows 用户的超链接颜色首选项值?

Flash:如何从 Flash 中向我正在处理的 PHP 页面发出 POST 请求?

ruby-on-rails-3 - 使用 Rails 在 Net::HTTP::Get.new 中设置自定义超时

iis - 是否有可能减慢 IIS 的速度?

python - 如何将消息从 Flask 服务器(Python)发送到 HTML 客户端?

android - 使用键盘后,Delphi 和 Honeywell Android Mobile Scanner 未填充

multithreading - TThread 中的 Application.ProcessMessages?

arrays - 创建一个默认值的 TDictionary 常量数组

http - Google clientLogin 身份验证 url 响应 - 302 文档已移动

java - 在 Tomcat 上运行的 Web 应用程序的登录页面