什么是从设备发送数据到服务器的最佳方法

问题描述:

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

我们有HTTP POST的工作,然后我开始尝试使用CSV,这成为一种痛苦,因为可靠地监控通过FTP接收的文件意味着编辑ProFTPD配置文件(我发现这是几乎不可能的任务)并安装一个名为mod_exec的包(带有安全风险),以便ProFTPD可以运行PHP脚本。这些问题以及我不熟悉我需要广泛使用的linux控制台来设置它的事实使得CSV方法非常难以设置。 HTTP POST对我来说似乎是一种更直接的方式发送数据,而不必担心文件或依赖ProFTPD。它也允许我们使用标识符来传递数据,这意味着与意义不明显的一系列值相对。另外,查询字符串可以通过URL编码来传递多维数组,该数组在传递数据类型的情况下可以很好地工作。

尽管如此,仅仅因为HTTP POST方法会更容易,并不意味着CSV方法没有优势。此外,固件人比电脑拥有更多的经验,所以我相信他的观点。

您能否帮我理解他对CSV方法优点的看法并解释最佳方法是什么?

+0

HTTP。期。除非你与之合作的人员没有正确实施的知识。如果是这样的话,你可能已经陷入困境:) – rdlowrey

你说得对。 FTP在防火墙方面存在主要问题,特别是在移动(NAT)IPv4上效果不佳。如果仅仅因为没有人接受断开HTTP的“互联网”连接,那么HTTP POST在这种情况下效果会更好。

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

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

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

+0

谢谢,有没有什么资料可以提供,所以我可以备份你说的一些东西? –

+0

我特指FTP与防火墙有关的问题。此外,没有人接受断开HTTP的“互联网”连接(我不完全确定你的意思) –

+0

@ Josh'Bambi'Bambrick:对于FTP套接字,请参阅http://slacksite.com/other/ftp.html。至于HTTP,没有客户会接受阻止端口80的ISP防火墙,即使在移动网络上也是如此。但FTP的入站端口通常被阻塞。 – MSalters

“CSV方法”(我称之为“FTP方法”,虽然)具有被嵌入式开发人员所知的优点。接收方将不得不创建一些方法来检查是否有文件。这增加了复杂性。

的“HTTP方法”有以下几个优点:

  • HTTP容易在发送方
  • 没有必要创建一个文件检查器
  • 您可以回复到嵌入式设备,如果实施一切正常

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

+0

谢谢,这很方便。我想我们现在将使用HTTP方法 –