gpt4 book ai didi

Delphi:TIdHTTP 与 TNetHTTPClient

转载 作者:行者123 更新时间:2023-12-03 15:41:51 47 4
gpt4 key购买 nike

我正在用 Delphi 编写一个下载管理器,具有一些自定义功能,例如可恢复下载和通过代理下载。

我正在研究不同的组件解决方案:Indy 和 NetHTTP,两者看起来都非常接近。

  • TNetHTTPClient 似乎是 winhttp.dll 的接口(interface)。

  • TIdHTTP 似乎是 wininet.dll 的接口(interface)(但我不确定)。

  • TIdHTTP 似乎是一个非常古老的组件(可能非常稳定/经过测试),并且有大量在线文档。

  • TNetHTTPClient 似乎是一个非常新的组件,并且没有良好的在线文档。

我有点犹豫不决...选择哪一个?

重点是:这两个组件之间的主要区别是什么?

我的问题有点有争议(主要是基于意见),但我还没有发现这两个组件之间有任何实际比较。

最佳答案

TNetHTTPClient 是在 Delphi XE8 中引入的。

TNetHTTPClient 最重要的好处是它允许您的应用程序支持 HTTPS,而无需提供您自己的 SSL/TLS 支持。 TNetHTTPClient 依赖于操作系统提供的 SSL/TLS 支持。

这意味着您不必在发现新漏洞时更新您的应用程序。您的客户将获得这些更新作为其操作系统更新的一部分。为您减少工作量,为您的客户提供更好的安全性(如果他们相信他们的操作系统供应商比您更擅长更新 SSL/TLS 库)。

这也意味着加密和解密 HTTPS 流量的代码不在您的应用程序中。因此您的应用程序不会受到导入或导出加密算法限制的影响。

TIdHTTP 依赖 OpenSSL 来支持 HTTPS。您必须随应用程序一起提供两个 DLL。 OpenSSL 是一个开源项目。一些组织对包含开源组件的软件存在问题。我们的一款产品使用 TIdFTP 和 OpenSSL 来支持 FTPS。有时,我们会有用户询问产品是否可以在没有这些 DLL 的情况下工作(可以,但没有 FTPS),因为它们的存在使得软件在其组织中获得批准使用变得更加困难。

我相信这一切也是 Embarcadero 创建 TNetHTTPClient 的动机(尽管他们已经有了 TIdHTTP)。它将确保 HTTPS 安全的责任从开发人员转移到了操作系统。

关于Delphi:TIdHTTP 与 TNetHTTPClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43153919/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com