Ich habe eine Web-Anwendung, wo Benutzer URL veröffentlichen können, um seine Datei heruntergeladen zu haben. Ich benutze libcurl und ich überprüfe Response Content-Length, um die Dateigröße zu erzwingen. Ich mache mir Sorgen, dass einige davon fortgetragene Server weiter uploaden werden und letztendlich den gesamten verfügbaren Platz ausfüllen und meinen Server ersticken werden. Wird libcurl das Herunterladen der Datei abbrechen, wenn die Größe größer als Content-Length ist?Wird der Download von libcurl abgebrochen, wenn die Datei die Inhaltslänge überschreitet?
2
A
Antwort
2
Ja wird es (meistens). Als das Feld für die Inhaltslänge (wenn verwendet) ist, wie HTTP verwendet wird, um die Größe des Hauptteils dieser bestimmten Antwort anzugeben. Ein HTTP-Client kann nicht weiterlesen, da die Verbindung offen bleibt und für die nächste Anfrage wiederverwendet wird.
Dies ist eine grundlegende HTTP 1.1-Funktionalität und Sie können die Details in RFC7230 finden und wenn Sie möchten, curl Code lesen, besuchen Sie das lib/http.c Quellcode für die Content-Length-Header Matching und das Parsen und dann weiter wie das Feld 'maxdownload' wird in lib/transfer.c usw. verwendet.
Verwandte Themen
- 1. Was passiert, wenn die Cookie-Datei die maximale Größe überschreitet?
- 2. Download von URL, die eine Datei generiert
- 3. Datei-Download-Dialogfeld in IE6 'Aktion abgebrochen Nachricht
- 4. Wie schätze ich die Downloadzeit, wenn der Antwortheader keine Inhaltslänge enthält?
- 5. Wie ermittle ich die Inhaltslänge einer gezippten Datei?
- 6. Django- Wenn die Inline-Funktion Prozess abgebrochen
- 7. Wenn JQuery die Funktion .load() abgebrochen hat?
- 8. textarea scrollt nicht, wenn der Text die Boxgröße überschreitet
- 9. HttpWebRequest: Die Anfrage wurde abgebrochen: Die Anfrage wurde abgebrochen
- 10. Sitzungsgenerierungs-ID, die die maximale Ausführungszeit überschreitet?
- 11. angularjs - wie kann ich die Inhaltslänge Header
- 12. PHP Download-Datei von Link, der Datei
- 13. Die Transaktion wurde abgebrochen
- 14. Ausführliche Informationen von libcurl zu einer Datei
- 15. Ist es notwendig, die Inhaltslänge in meinem Antwortheader zu setzen?
- 16. File Download Dialog nicht angezeigt wird, wenn wir eine Datei
- 17. Wie man die Inhaltslänge in Android einstellt?
- 18. Installierte Curl aber Libcurl wird nicht aktualisiert
- 19. WCF-Inhaltslänge stimmt nicht überein, wenn IIS-Komprimierung verwendet wird
- 20. Datei mit libcurl in C/C++ herunterladen
- 21. $ ('form'). Übergeben Sie die Änderung der Kopfzeile der Inhaltslänge, wodurch die Anforderung fehlschlägt?
- 22. PHP curl_multi - wie die Download-Größe der Datei zu begrenzen
- 23. Fortsetzen Dateiübertragung, wenn abgebrochen
- 24. Gibt es eine Grenze für die Größe einer Datei, wenn ein Download mit PHP ausgelöst wird?
- 25. Android-Alarm wird abgebrochen, wenn die App heruntergefahren wird. Leaked IntentReceiver
- 26. AngularJS: $ HTTP.GET wird abgebrochen
- 27. Wie wird die vorherige Animation abgebrochen, wenn eine neue ausgelöst wird?
- 28. Wird die beflockte Datei freigegeben, wenn der Prozess unerwartet abbricht?
- 29. Workflow-Status abgebrochen, wenn Artikel nicht von Besitzern erstellt wird
- 30. Download-Datei von FTP wird beim Ausführen von Jenkins stecken
Sie könnten einen einfachen Testfall erstellen und es selbst ausprobieren ... Ein Skript, das 100k ausgibt, und ein Download-Skript, das nur 50k erwartet. –
@MarcB okay, ich habe es getan und es auf Content-Length gestoppt. So weit, ist es gut. Aber ich würde wirklich eine autoritative Antwort schätzen. Wie mit Link zur Quelle, wo es nach der Dateigröße sucht. Da kann die Anwesenheit von einigen anderen Header können etwas ändern (alles), weißt du. –
@MarcB außerdem weiß ich nicht, vielleicht war es mein Testserver (Webrick), der das Streaming gestoppt hat, weil ich Content-Length-Header weniger als die Dateigröße festgelegt habe. Und nicht libcurl hat aufgehört zu empfangen. Woher soll ich das wissen? –