2010-05-21 4 views
25

Ich habe gehört, dass POST hat keine Grenze in Datengröße kann es gesendet werden, ist das wahr oder gibt es einige wirklich hohe Grenze?Ist Http POST grenzenlos?

Antwort

30

Es hängt vielmehr von dem Web-Server und Web-Browser:

Internet Explorer Alle Versionen 2GB-1
Mozilla Firefox Alle Versionen 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1

Obwohl IIS standardmäßig nur Unterstützung 200 KB, die Metabasis ame braucht um dies zu erhöhen.

http://www.motobit.com/help/scptutl/pa98.htm

Die POST-Methode selbst hat keine Begrenzung für die Größe der Daten.

+0

upvote für die Erwähnung von Metabase.XML und ich habe verschiedene Möglichkeiten aufgeführt, um die Größe der Datei Upload-Größe zu ändern, weil es nützlich sein könnte. –

+0

Wenn Sie den folgenden Befehl in die Eingabeaufforderung eingeben, erhöht sich die Dateigrößenbeschränkung. "Cscript C: \ inetpub \ adminscripts \ adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed 10484880" (in Byte) Referenz: https: //www.serverintellect.com/support/ Iis/uploaddownload-size-limits-iis6/ –

+0

oder suchen Sie in C: \ windows \ system32 \ inetserv \ path nach metabase.xml und bearbeiten Sie, stellen Sie jedoch sicher, dass die direkte Bearbeitung der Metabasis aktivieren aktiviert ist.reference: http: //www.banmanpro.com /support2/file_upload_limits.asp –

17

Es gibt keine Begrenzung nach dem HTTP-Protokoll selbst, aber Implementierungen haben eine praktische Obergrenze. Ich habe Daten über 4 GB mit POST an Apache gesendet, aber einige Server hatten zu der Zeit ein Limit von 4 GB.

3

POST ermöglicht eine beliebige Länge von Daten an einen Server gesendet werden, aber es gibt Einschränkungen basierend auf Timeouts/Bandbreite usw.

Ich denke, im Grunde, es ist sicherer, anzunehmen, dass es nicht in Ordnung zu senden viele Daten.

+0

Gibt es irgendwelche Faustregeln dafür, wie gefährlich für Timeouts und ähnliches wird? – vextorspace

3

Verschiedene IIS-Webserver können unterschiedliche Datenmengen im "Header" gemäß diesem (jetzt gelöschten) Artikel verarbeiten; http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;

Hinweis, dass es keine Begrenzung für die Anzahl von Formelementen ist man per Post, sondern nur auf der gesamten Größe aller Namen/Wert-Paare passieren kann. Während GET auf so niedrig wie 1024 Zeichen beschränkt ist, sind POST-Daten auf 2 MB auf IIS 4.0 und 128 KB auf IIS 5.0 beschränkt. Jeder Name/Wert ist auf 1024 Zeichen begrenzt, wie von der SGML spec vorgegeben. Natürlich gilt das nicht für Dateien hochgeladen mit enctype = 'multipart/form-data' ... I hatte keine Probleme beim Hochladen von Dateien im Bereich von 90 - 100 MB mit IIS 5.0, abgesehen von der Erhöhung der server.scriptTimeout Wert sowie meine Geduld!

+1

Gut editieren @Matt - zeigt die Wichtigkeit des Ausschneidens der hervorstechenden Fakten, anstatt blind zu verlinken – amelvin

0

Http darf keine Obergrenze haben, aber Webserver können einen haben. In asp.net gibt es ein Standard-Akzeptanzlimit von 4MB, aber Sie (der Entwickler/Webmaster) können das ändern, um höher oder niedriger zu sein.

0

In einer Anwendung, die ich entwickelte, stieß ich auf eine POST-Grenze von ca. 2KB. Es stellte sich heraus, dass ich versehentlich die Parameter in die URL kodierte, anstatt sie im Body zu übergeben. Wenn Sie also auf ein Problem stoßen, ist die Größe der POST-Daten, die Sie verschlüsselt in die URL senden können, sehr begrenzt.