0

コンピューターからいくつかのファイル (テキスト、ビデオ、画像) を取得し、それらを Android デバイスのフォルダーにダウンロードしたいと考えています。私は代替案を探していて、それを行うには 2 つの方法があると思いますが、どちらを使用するかに大きな違いがあるかどうかはわかりません。

私の場合、FTP と HTTP のどちらのプロトコルが優れているのでしょうか? 何もアップロードする必要はありませんし、ファイルのサイズも大きくありません。(最大のファイルは約5Mだと思います)

HTTPの方が簡単で、FTPの方が速いと思いますか? でも、プログラミングで考えて、どっちがいいのかな。

4

2 に答える 2

3

速度に関しては、ファイル サイズが約 10kB を超える場合、どちらも同等です。違いは、FTP はデータ チャネルでヘッダーなしで純粋な生データを送信するため、オーバーヘッドがわずかに小さいことです。しかし、HTTP は、生データをチャネルに送信する前に、各ファイルのヘッダーとして約 12 行程度のテキストしか送信しません。したがって、約 10kB 以下のファイルの場合、HTTP オーバーヘッドは非常に高くなる可能性があります。総帯域幅の約 1% から 2% です。大きなファイルの場合、HTTP ヘッダーの数十行ほどは無視できます。

FTP は制御チャネルのために 1 つのソケットを浪費するため、多くのユーザーにとって HTTP は 2 倍のスケーラビリティを備えています。OS で開くことができるソケットの数は限られていることに注意してください。

最後に、最も重要な考慮事項は、多くの人がファイアウォールを介してインターネットにアクセスしていることです。企業でも、学校でも、寮でも、マンションでも。また、多くのファイアウォールは、HTTP アクセスのみを許可するように構成されています。このため、ファイルにアクセスできない場合があります。もちろん、これを回避する方法はありますが、考えなければならない追加の問題があります。


追加の回答:

アクセス制限とセキュリティについてお問い合わせいただきました。HTTP のわずかな欠点は、これを実装するには独自の Web アプリを作成する必要があることです。Apache のような Web サーバーは、HTTP 基本認証を使用して構成ファイルを作成するだけで、これを行うように構成できます。

幸いなことに、人々は以前にこの問題を抱えており、その中にはこれを行うためのソフトウェアを作成した人もいます。「HTTP ファイル サーバー」を Google で検索すると、多くの実装が見つかります。これは、かなり優れたオープン ソース Web アプリの 1 つです: http://pfn.sourceforge.net/

また、本当にセキュリティが必要な場合は、FTP または HTTP を使用することになる天候に関係なく、サーバーに SSL/TLS を設定する必要があります。

于 2012-09-07T10:03:55.880 に答える
1

HTTPをお勧めします。複数の接続でファイルをダウンロードでき、URL を簡単に共有でき、http 以外のすべてのポートがブロックされている制限された環境でダウンロードすることもできます。

ユーザーごとにファイルへのアクセスを制御し、大量のアップロードも必要とする場合は、FTP が適しています。

添加:

.htaccess ファイルを使用して、http にセキュリティを実装することもできます。ただし、スケーラブルではなく、異なるアクセス権を持つ多数のユーザーには適していません。

http 上のファイルを保護する方法は他にもいくつかあります。http://sourceforge.netで、それを可能にする多くのオープン ソース ユーティリティを見つけることができます。速度を重視する場合は、http が最適です。ファイルの任意の部分を取得できるため、マルチスレッドでダウンロードできます。

ファイル共有サイトのほとんどが http を使用していることに気付くでしょう。これはスケーラビリティの理由からです。

于 2012-09-07T09:02:16.883 に答える