web-dev-qa-db-ja.com

HTTPを使用して転送できるファイルの最大サイズはいくつですか? FTPを使用していますか?

追加:自分の仕事で開発する新しいシステムの調査を行っています。それは、ユーザーを認証し、ダウンロードしたいファイルを表示し、それらをダウンロードすることから成ります。また、ファイルがすぐに利用できない場合、ユーザーはファイルをダウンロードできませんが、サーバーは要求されたファイルのコピーを取得し、ファイルを取得できるときにメールでユーザーに通知します。現在のところ、ファイルのサイズは通常2〜50ギガバイトであると予想されます。

問題を解決するためのWebアプリケーションを作成できるかどうか、またはクライアントサーバーソリューションを作成する必要があるかどうかを確認したいだけです。

24
Thiago Chaves

上限はありません。発生している最大値は、アプリケーション固有またはサイト固有です。

私は問題なくHTTPとFTPを使用してMicrosoftからDVD isosをダウンロードしました(〜4gb)。

両方の方法で巨大なファイルもアップロードしました。

あなたがやろうとしていることについて詳しく説明できますか?

26
Michael Haren

すでに回答したように、プロトコルには制限はありませんが、ほとんどのHTTPサーバーには、デフォルトのアップロード制限が標準で設定されています。

IIS6metabase.xmlMaxRequestEntityAllowed (デフォルトは4GB)および AspMaxRequestEntityAllowed (デフォルトは200000バイト)を使用します。

IIS7は maxRequestEntityAllowed :** appcmd set config/section:asp/maxRequestEntityAllowed:*** int *(デフォルトは200000バイト)を使用します

Apacheは LimitRequestBody を使用します(デフォルトは2GB)

20
Grant Wagner

あなたが言ったプロトコルにはそのような設計上の制限はありません。具体的なサーバーでのみタイムアウト

2
abatishchev

そして1つの重要な質問-アップロードまたはダウンロードしますか?

ダウンロードの方がアップロードよりも制限がかなり少ないと言えます。理由はわかりません。たぶん、HTTPとFTPの主な目的はデータを送信することであり、受信することではないからです。

そのため、HTTP/FTPサーバーは、ダウンロードセッションよりもアップロードセッションを頻繁に中断する可能性があります。

1
abatishchev

転送のサイズはおそらく最初の方で述べられているので、ファイルサイズの制限は符号なし整数の制限と同じだと思います。 HTTPとFTPが一般的で便利になった時期から判断すると、これは32ビットの符号なし整数なので、2 ^ 32バイト、または4.0 GiBと言います。

1
Supuhstar

HTTPでのアップロードは、リクエストに応答するために(ほとんど遅い)アップロードが完了するまでサーバーが待機する必要があるため、通常は制限されます。

1
Gumbo

TCPプロトコルの場合、シーケンス番号は0から2 ^ 32-1までです。バイトごとにシーケンスを1ずつ増やす最悪のケースを想定してください。最大ファイルサイズは4GBです。そして、 1GBps接続。すべてのシーケンスは4秒で終了します。つまり、ラップアラウンドタイムです。TTLがラップアラウンドタイムより大きい場合、シーケンスを再利用できないため、最大ファイルサイズは4GBです。

しかし、MagicはTCPオプションにあり、オプションにタイムスタンプを追加できます。同じ発信元と同じ宛先の同じシーケンス番号を取得しても、タイムスタンプが異なる場合でも問題が解決されます。

0
Shubham