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

「CSV メソッド」(私は「FTP メソッド」と呼んでいます) には、組み込み開発者に知られているという利点があります。ただし、受信側は、ファイルがあるかどうかを確認する何らかの方法を作成する必要があります。これにより、複雑さが増します。

「HTTP メソッド」にはいくつかの利点があります。

  • HTTPは送信側で簡単に実装できます
  • ファイルチェッカーを作成する必要はありません
  • すべてがうまくいった場合は、組み込みデバイスに返信できます

私は実際にそのようなシステムを実装し (データは多すぎませんが、それでも)、HTTP POST を使用してデータを送信しました。HTTP POST を自分で実装しました。

于 2012-08-28T15:34:42.817 に答える
1

あなたが正しい。FTP にはファイアウォールに関する大きな問題があり、特にモバイル (NAT 化された) IPv4 ではうまく機能しません。HTTP POST は、HTTP を切断する「インターネット」接続を誰も受け入れないという理由だけで、そのような状況でははるかにうまく機能します。

さらに、HTTP はデバイス上でも非常に簡単です。これは、そのソケットでの単純な読み取り/書き込みセマンティクスを備えた、単一ソケットのプロトコルです。

さらにいくつかの利点はありますか?HTTP は、圧縮 (gzip) をほぼネイティブでサポートしています。入力が完了する前に HTTP 送信を開始できます。HTTP の方がセキュア (HTTPS) の方が簡単です...

いいえ、FTP を使用する理由はほとんどありません。

于 2012-08-28T15:31:38.473 に答える