1

我目前正在为一家能源监测公司开发一个网站。我们正在尝试将大量数据从记录数据的设备发送到服务器,以便在数据库中进行处理。开发固件的人似乎认为发送数据的最佳方式是生成 CSV 文件并通过 FTP 发送它们。服务器上的程序需要监控通过 FTP 接收到的文件并运行 PHP 脚本来处理它们。然而,我认为发送数据的最佳方式是通过 HTTP POST。

我们有 HTTP POST 工作,然后我开始尝试使用 CSV,这变得很痛苦,因为可靠地监控通过 FTP 接收的文件意味着编辑 ProFTPD 配置文件(我发现这是一项几乎不可能完成的任务)并安装一个名为 mod_exec 的包(带有安全风险),以便 ProFTPD 可以运行 PHP 脚本。这些问题以及我不熟悉需要大量使用来设置它的 linux 控制台的事实,使得 CSV 方法很难设置。HTTP POST 对我来说似乎是一种更直接的发送数据的方式,无需担心文件或依赖 ProFTPD。它还允许我们使用标识符来为传递的数据赋予含义,而不是含义不立即显现的一串值。此外,

然而,仅仅因为 HTTP POST 方法更容易并不意味着 CSV 方法没有优势。此外,固件人员在计算机方面的经验比我多得多,所以我相信他的意见。

你能帮我理解他对 CSV 方法优势的观点并解释什么是最好的方法吗?

4

2 回答 2

1

你是对的。FTP 在防火墙方面存在重大问题,尤其是在移动(经过 NAT 的)IPv4 上不能很好地工作。在这种情况下,HTTP POST 的工作要好得多,只是因为没有人接受破坏 HTTP 的“互联网”连接。

此外,HTTP 在设备上也更容易。它只是一个单套接字协议,在该套接字上具有微不足道的读/写语义。

还有一些好处?HTTP 几乎原生支持压缩 (gzip)。HTTP 传输可以在输入完成之前开始。HTTP 更容易保护(HTTPS)...

不,确实没有什么理由使用 FTP。

于 2012-08-28T15:31:38.473 回答
1

“CSV 方法”(尽管我将其称为“FTP 方法”)具有嵌入式开发人员知道的优势。接收方将不得不创建某种方法来检查是否有文件。这增加了复杂性。

“HTTP 方法”有几个优点:

  • HTTP 在发送端很容易实现
  • 无需创建文件检查器
  • 如果一切正常,您可以回复嵌入式设备

我实际上只是实现了一个这样的系统(数据不多,但仍然如此)并使用 HTTP POST 发送数据。我自己实现了 HTTP POST。

于 2012-08-28T15:34:42.817 回答