it-swarm.com.de

Was ist die maximale Dateigröße, die ich über HTTP übertragen kann? Und mit FTP?

Hinzugefügt : Ich führe eine Studie für ein neues System durch, das wir in meiner Arbeit entwickeln werden. Es besteht darin, Benutzer zu authentifizieren, anzuzeigen, welche Dateien sie herunterladen möchten, und sie herunterzuladen. Wenn die Dateien nicht sofort verfügbar sind, kann der Benutzer sie nicht herunterladen, aber der Server erhält eine Kopie der angeforderten Datei und benachrichtigt den Benutzer per E-Mail, wenn er die Datei erhalten kann. Für den Moment erwarten wir Dateien mit einer Größe von 2 bis 50 Gigabyte.

Ich möchte nur prüfen, ob es möglich ist, eine Webanwendung zu schreiben, um das Problem zu lösen, oder ob wir eine Client-Server-Lösung erstellen müssen.

18
Thiago Chaves

Es gibt kein Maximum. Jedes Maximum, dem Sie begegnen, ist anwendungsspezifisch oder standortspezifisch.

Ich habe DVD-Isos von Microsoft über HTTP und FTP ohne Probleme heruntergeladen (~ 4 GB).

Ich habe auch riesige Dateien mit beiden Methoden hochgeladen.

Können Sie näher erläutern, was Sie zu tun versuchen?

22
Michael Haren

Wie bereits erwähnt, hat das Protokoll keine Einschränkungen, aber die meisten HTTP Server haben standardmäßige Upload-Grenzwerte:

IIS6 verwendet MaxRequestEntityAllowed (Standardeinstellung ist 4 GB) und AspMaxRequestEntityAllowed (Standardeinstellung ist 200000 Byte) in metabase.xml .

IIS7 verwendet maxRequestEntityAllowed : ** appcmd set config/section: asp/maxRequestEntityAllowed: *** int * (Standardeinstellung ist 200000 Byte)

Apache verwendet LimitRequestBody (Standardeinstellung ist 2 GB)

18
Grant Wagner

In den von Ihnen genannten Protokollen gibt es keine solche Einschränkung. Nur Timeouts auf konkreten Servern

2
abatishchev

Und eine wichtige Frage - werden Sie hochladen oder herunterladen?

Ich könnte sagen, dass das Herunterladen wesentlich weniger Einschränkungen hat als das Hochladen. Ich weiß nicht warum. Vielleicht, weil der Hauptzweck von HTTP und FTP das Senden von Daten ist und nicht das Empfangen.

Aus diesem Grund könnten HTTP/FTP-Server häufiger die Upload-Sitzung unterbrechen, als die Sitzung herunterzuladen.

1
abatishchev

Da die Größe einer Übertragung wahrscheinlich zu Beginn angegeben ist, würde ich darauf wetten, dass das Limit Ihrer Dateigröße dem Limit für eine vorzeichenlose Ganzzahl entspricht. Gemessen an dem Zeitraum, als HTTP und FTP populär und nützlich wurden, würde ich sagen, dass dies eine vorzeichenlose 32-Bit-Ganzzahl ist, also 2 ^ 32 Bytes oder 4.0 GiB .

1
Supuhstar

Der Upload in HTTP ist normalerweise begrenzt, da der Server warten muss, bis der (meist langsame) Upload abgeschlossen ist, um auf die Anforderung zu antworten.

1
Gumbo

Für das TCP -Protokoll haben Sie eine Sequenznummer von 0 bis 2 ^ 32-1. Nehmen Sie an, dass Sie die Sequenz um 1 für jedes Byte erhöhen. Jetzt maximale Dateigröße ist 4 GB. Und Sie haben eine Verbindung von 1 GB/s. Alle Sequenzen werden in 4 Sekunden beendet. Dies ist Umlaufzeit. Wenn TTL größer als Umlaufzeit ist, können wir die Sequenz also nicht wiederverwenden Die maximale Dateigröße beträgt 4 GB.

Magic befindet sich jedoch in TCP Options, in Optionen können wir einen Zeitstempel hinzufügen. Nun Problem gelöst, auch wenn wir mit derselben Quelle und demselben Ziel dieselbe Sequenznummer erhalten, aber wir haben unterschiedliche Zeitstempel zur Identifizierung.

0
Shubham