Was ist die Größenbeschränkung einer Post-Anfrage?
Lesezeit: 6 Minuten
Entschuldigung, wenn dies doppelt ist, ich würde es vermuten, konnte aber nichts finden.
Ich habe eine Flex-Anwendung, bei der ich Daten über IE an einen PHP/Mysql-Server zurücksende. Ich bin noch nicht auf irgendwelche Probleme gestoßen, aber wenn ich das im Voraus weiß, kann ich mir eine Menge Frustration und Arbeit ersparen. Gibt es eine Größenbeschränkung für das Posten von Daten über http?
Und es geht alles hin und her, was ich online finden kann. Damit bitte Antworten auf persönlich getestete/verifizierte Nummern beschränken.
Ich möchte eine XML-Zeichenfolge zurücksenden, die ziemlich groß sein kann (sagen wir bis zu 5 MB).
Falls es einen Unterschied macht: Browser wird immer IE sein (unser Produkt erfordert es), Post kommt von und httpService in flex, Webserver ist php, DB ist mySql.
stackoverflow.com/questions/2276759/…
– karim79
2. März 2010 um 16:42 Uhr
Ich hatte dieses Problem in Laravel und füge ini_set (‘max_input_vars’, 2500) hinzu; in server.php im Stammverzeichnis meines Projekts und seine Arbeit stackoverflow.com/a/63241730/308578
– Säbel tabatabaee yazdi
4. August 2020 um 7:04 Uhr
Brettkelly
Es hängt von einer Serverkonfiguration ab. Wenn Sie mit PHP unter Linux oder ähnlichem arbeiten, können Sie es mithilfe der .htaccess-Konfigurationsdatei wie folgt steuern:
#set max post size
php_value post_max_size 20M
Und ja, ich kann persönlich bestätigen, dass das funktioniert 🙂
Wenn Sie IIS verwenden, habe ich keine Ahnung, wie Sie diesen bestimmten Wert festlegen würden.
Wo ist das post_max_size Einstellung bei? Ich bin ziemlich neu in PHP und kann es nirgendwo in unserer Codebasis finden (mit dem DreamWeaver-Find-All-Prozess). Ich würde unsere Systemadministratoren fragen, aber sie sind gemein. 😛
– umgekehrter Speer
2. März 2010 um 17:07 Uhr
Können Sie diesen Wert einfach auf eine beliebige Größe setzen? Gibt es keine Art von Protokollbeschränkung? Kannst du es auf 999999999999999999999M setzen?
– Abs
24. Juni 2012 um 7:46 Uhr
@Para – Dieser Beitrag sagt, dass Sie es so hoch wie den Speicher Ihrer Maschine einstellen können. Es sagt auch, dass der Standardwert 2 MB ist.
– RustyTheBoyRobot
19. Juli 2012 um 23:55 Uhr
Da dies PHP ist, hatte ich erwartet, dass es jeden Wert akzeptiert und nur SEGFAULT, wenn es die Grenze Ihres Computers erreicht ….
– RustyTheBoyRobot
19. Juli 2012 um 23:56 Uhr
Außerdem gibt es in der PNP.INI-Datei eine Einstellung: max_input_vars, die in meiner Version von PHP: 5.4.16 standardmäßig auf 1000 eingestellt ist $_COOKIE superglobal separat)” Ref.: php.net/manual/en/info.configuration.php#ini.max-input-vars
– Nikolai Iwanow
8. November 2013 um 13:01 Uhr
Der URL-Teil einer Anfrage (GET und POST) kann sowohl vom Browser als auch vom Server begrenzt werden – im Allgemeinen beträgt die sichere Größe 2 KB, da es fast keine Browser oder Server gibt, die eine kleinere Grenze verwenden.
Der Hauptteil einer Anfrage (POST) wird normalerweise* vom Server auf Byte-Größenbasis begrenzt, um eine Art von DoS-Angriff zu verhindern (beachten Sie, dass das Zeichen-Escape die Byte-Größe des Hauptteils erhöhen kann). Die gebräuchlichste Servereinstellung ist 10 MB, obwohl alle gängigen Server es ermöglichen, dies über eine Einstellungsdatei oder ein Bedienfeld zu erhöhen oder zu verringern.
*Einige Ausnahmen gibt es bei älteren Mobiltelefonen oder anderen kleinen Gerätebrowsern – in diesen Fällen ist es eher eine Funktion des für diesen Zweck auf dem Gerät reservierten Heap-Speicherplatzes als irgendetwas anderes.
Erzählen Sie etwas über die Browser-Limits, wenn Sie bedenken curl
– Yugal Jindle
13. Februar 2012 um 8:33 Uhr
Ich weiß, dass ich hier etwas hinterherhinke, aber Antworten wie diese sind der Grund, warum ich StackOverflow liebe. Über das hinaus, was erforderlich ist, und einige wertvolle Hintergrundinformationen liefern.
– Siebenschläfer
19. Juni 2013 um 19:23 Uhr
Nikolai Iwanow
Außerdem gibt es in der PHP.INI-Datei eine Einstellung:
max_input_vars
was in meiner Version von PHP: 5.4.16 standardmäßig 1000 ist.
Aus dem Handbuch: “Wie viele Eingabevariablen dürfen akzeptiert werden (Limit wird separat auf $_GET, $_POST und $_COOKIE superglobal angewendet)”
Beachten Sie, dass dieser Wert standardmäßig auskommentiert ist, kommentieren Sie ihn also aus und ändern Sie den gewünschten Wert.
– Alvaro Flaño Larrondo
12. November 2020 um 14:34 Uhr
Niles Chourasia
Sie können große Datenmengen posten, indem Sie die Variable php.ini setzen: max_input_vars
Die Standardgröße dieser Variable ist 1000, aber wenn Sie große Datenmengen senden möchten, müssen Sie die Größe entsprechend erhöhen. Wenn Sie die Größe nicht von ini_set aus festlegen können, müssen Sie dies tun htaccess oder indem Sie direkt Änderungen in der php.ini-Datei vornehmen.
max_input_vars 2500
memory_limit 256M
ChrisDeDavidMindflowAU
Wie David betonte, würde ich mich in den meisten Fällen für KB entscheiden.
php_value post_max_size 2K
Hinweis: Mein Formular ist einfach, nur ein paar Textfelder, kein langer Text.
Standardmäßig hat die Post-Anforderung eine maximale Größe von 8 MB. Sie können es jedoch Ihren Anforderungen entsprechend ändern. Die Änderung kann durch Öffnen der php.ini-Datei (php-Konfigurationseinstellung) vorgenommen werden.
Finden
post_max_size=8M //for me, that was on line:771
Ersetzen Sie 8 gemäß Ihren Anforderungen.
Hutch Moore
Eine der besten Lösungen dafür ist, dass Sie nicht mehrere oder mehr als 1.000 Eingabefelder verwenden. Sie können mehrere Eingaben mit beliebigen Sonderzeichen verketten, z. @.
Damit umgehen Sie die max_input_vars Ausgabe. Wenn Sie erhöhen max_input_vars in der php.ini-Datei, die für den Server schädlich ist, weil sie mehr Server-Cache-Speicher verwendet, und dies kann manchmal den Server zum Absturz bringen.
Ich sehe nicht, wie das Verketten von Variablen Speicher spart. Jedes ASCII-Zeichen belegt 1 Byte Speicherplatz. Ein String (technisch gesehen ein Char-Array, wenn ich mich nicht irre) verwendet n * 1 Bytes mit n als Stringlänge. Warum würde das Hinzufügen eines weiteren Zeichens den verwendeten Speicher reduzieren? In dieser Berechnung würden Sie für jedes ‘@’, das Sie der Zeichenfolge hinzufügen, ein weiteres Byte hinzufügen. Natürlich reduzieren Sie die Anzahl der verwendeten Variablen, aber Sie bezahlen diesen “Gewinn” mit zusätzlicher Arbeit, um sie wieder aufzuteilen.
– DBX12
24. Oktober 2016 um 13:53 Uhr
@ DBX12 Während Sie mit diesem Trick keinen Speicher sparen, können Sie die umgehen max_input_vars Option in der php.ini mit diesem. Nicht genau das, was gefragt wurde, aber dennoch nützlich.
– RicoBrassers
10. April 2017 um 14:55 Uhr
Die Überschreitung der Größenbeschränkung hängt von zwei Faktoren ab: Erstens, Größe der einzelnen Schlüssel/Wert-Strings, dh Zeichenanzahl auf der Schlüssel- und/oder Wertseite. Zweitens, die Menge der Schlüssel/Wert-Paare, selbst wenn jedes Paar eine kleine Zeichenmenge hat. Insgesamt führen zwei der oben genannten Faktoren dazu, dass die Größenbeschränkung überschritten wird. Für mich ist diese Antwort also richtig und bezieht sich auf die Frage und hebt eine Seite eines Problems hervor.
– Elnur Shabanov
17. April 2020 um 11:34 Uhr
9893600cookie-checkWas ist die Größenbeschränkung einer Post-Anfrage?yes
stackoverflow.com/questions/2276759/…
– karim79
2. März 2010 um 16:42 Uhr
Ich hatte dieses Problem in Laravel und füge ini_set (‘max_input_vars’, 2500) hinzu; in server.php im Stammverzeichnis meines Projekts und seine Arbeit stackoverflow.com/a/63241730/308578
– Säbel tabatabaee yazdi
4. August 2020 um 7:04 Uhr