Ich habe gehört, dass HTTP POST keine Spezifikationsbeschränkung für die Datengröße hat, von der es gesendet werden kann. Ist das wahr oder gibt es nur eine wirklich hohe Grenze?
Antworten:
EDIT (2019) Diese Antwort ist jetzt ziemlich überflüssig, aber es gibt eine andere Antwort mit relevanteren Informationen.
Es kommt eher auf den Webserver und den Webbrowser an:
Internet Explorer Alle Versionen 2 GB-1
Mozilla Firefox Alle Versionen 2 GB-1
IIS 1-5 2 GB-1
IIS 6 4 GB-1
Obwohl IIS standardmäßig nur 200 KB unterstützt, muss die Metabasis geändert werden, um dies zu erhöhen.
http://www.motobit.com/help/scptutl/pa98.htm
Die POST-Methode selbst hat keine Begrenzung für die Datengröße.
Es ist ziemlich erstaunlich, wie alle Antworten über IIS sprechen, als wäre dies der einzige Webserver, der von Bedeutung ist. Bereits 2010, als die Frage gestellt wurde, hatte Apache zwischen 60% und 70% des Marktanteils . Wie auch immer,
min(serverMaximumSize, clientMaximumSize)
.Hier sind die POST-Körpergrößen für einige der beliebtesten HTTP-Server:
Es gibt keine Begrenzung gemäß dem HTTP-Protokoll selbst, aber Implementierungen haben eine praktische Obergrenze. Ich habe mit POST Daten über 4 GB an Apache gesendet, aber einige Server hatten zu diesem Zeitpunkt ein Limit von 4 GB.
LimitRequestBody
Richtlinie eine Obergrenze aufzuerlegen .
POST ermöglicht das Senden einer beliebigen Datenlänge an einen Server, es gibt jedoch Einschränkungen aufgrund von Zeitüberschreitungen / Bandbreite usw.
Ich denke im Grunde ist es sicherer anzunehmen, dass es nicht in Ordnung ist, viele Daten zu senden.
Verschiedene IIS-Webserver können gemäß diesem (jetzt gelöschten) Artikel unterschiedliche Datenmengen im "Header" verarbeiten. http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;
Beachten Sie, dass die Anzahl der FORM-Elemente, die Sie per POST übergeben können, nicht begrenzt ist, sondern nur die Gesamtgröße aller Name / Wert-Paare. Während GET auf nur 1024 Zeichen beschränkt ist, sind POST-Daten unter IIS 4.0 auf 2 MB und unter IIS 5.0 auf 128 KB beschränkt. Jeder Name / Wert ist auf 1024 Zeichen begrenzt, wie in der SGML-Spezifikation festgelegt. Dies gilt natürlich nicht für Dateien, die mit enctype = 'multipart / form-data' hochgeladen wurden. Ich hatte keine Probleme beim Hochladen von Dateien im Bereich von 90 bis 100 MB mit IIS 5.0, abgesehen davon, dass der Wert für server.scriptTimeout erhöht werden musste sowie meine Geduld!
In einer Anwendung, die ich entwickelte, stieß ich auf eine POST-Grenze von etwa 2 KB. Es stellte sich heraus, dass ich die Parameter versehentlich in die URL codiert habe, anstatt sie im Body zu übergeben. Wenn Sie dort also auf ein Problem stoßen, gibt es definitiv eine sehr kleine Beschränkung für die Größe der POST-Daten, die Sie verschlüsselt in die URL senden können.
HTTP hat möglicherweise keine Obergrenze, Webserver jedoch möglicherweise eine. In ASP.NET gibt es ein Standard-Akzeptanzlimit von 4 MB, aber Sie (der Entwickler / Webmaster) können dieses Limit höher oder niedriger ändern.