298 votes

Quelle est la taille limite d'une demande de poste ?

Désolé si c'est un doublon, je pensais que ça l'était mais je n'ai rien trouvé.

J'ai une application flex qui renvoie des données à un serveur php/mysql via IE. Je n'ai pas encore rencontré de problèmes, mais le fait de savoir cela à l'avance pourrait m'éviter beaucoup de frustration et de travail. Y a-t-il une limite de taille pour l'envoi de données via http ?

Cet article dit non : http://www.netlobo.com/ie_form_submit.html

Cette discussion dit oui : http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method

Et tout dépend de ce que je suis capable de trouver en ligne. Donc s'il vous plaît limiter les réponses à des chiffres testés/vérifiés personnellement.

Je souhaite renvoyer une chaîne XML qui peut être assez volumineuse (jusqu'à 5 Mo).

Si cela fait une différence : le navigateur sera toujours IE (notre produit l'exige), le message provient d'un httpService dans flex, le serveur web est php, la base de données est mySql.

7 votes

1 votes

J'ai eu ce problème dans laravel et j'ai ajouté ini_set('max_input_vars', 2500) ; dans server.php à la racine de mon projet et cela a marché. stackoverflow.com/a/63241730/308578

221voto

inkedmn Points 12655

Cela dépend de la configuration du serveur. Si vous travaillez avec PHP sous Linux ou un système similaire, vous pouvez le contrôler en utilisant le fichier de configuration .htaccess, comme ceci :

#set max post size
php_value post_max_size 20M

Et, oui, je peux personnellement attester du fait que cela fonctionne :)

Si vous utilisez IIS, je n'ai aucune idée de la façon dont vous définissez cette valeur particulière.

3 votes

Où se trouve cette post_max_size à quel endroit ? Je suis plutôt novice en php et je ne le trouve nulle part dans notre base de code (en utilisant le processus de recherche de dreamWeaver). Je demanderais bien à nos administrateurs système mais ils sont méchants :-P

1 votes

@invertedSpear Il se trouve dans le fichier de configuration PHP de votre serveur web. Par exemple, sur notre serveur Linux, il s'agit du fichier /etc/php5/cgi/php.ini.

13 votes

Vous pouvez donc fixer cette valeur à n'importe quelle taille ? N'y a-t-il pas une sorte de limitation de protocole ? Vous pouvez le régler sur 999999999999999999999M ?

80voto

David Points 12145

La partie url d'une demande (GET et POST) peut être limitée à la fois par le navigateur et par le serveur. En général, la taille sûre est de 2 Ko, car il n'existe pratiquement aucun navigateur ou serveur qui utilise une limite inférieure.

Le corps d'une requête (POST) est normalement* limité par le serveur en fonction de la taille en octets afin d'éviter un type d'attaque DoS (notez que cela signifie que l'échappement des caractères peut augmenter la taille en octets du corps). Le paramètre le plus courant du serveur est 10 Mo, mais tous les serveurs populaires permettent d'augmenter ou de diminuer cette taille via un fichier ou un panneau de configuration.

*Il existe quelques exceptions avec les anciens navigateurs de téléphones portables ou d'autres petits appareils - dans ces cas, il s'agit plus d'une fonction de l'espace du tas réservé à cet effet sur l'appareil que d'autre chose.

2 votes

Dites quelque chose sur les limites du navigateur, en considérant curl

14 votes

Je sais que je suis un peu à la traîne ici, mais des réponses comme celles-ci sont la raison pour laquelle j'aime StackOverflow. Elles vont au-delà de ce qui est nécessaire et fournissent des informations de base précieuses.

65voto

Nikolay Ivanov Points 739

De plus, dans le fichier PHP.INI, il y a un paramètre :

max_input_vars

qui, dans ma version de PHP 5.4.16, la valeur par défaut est de 1000.

Du manuel : "Combien de variables d'entrée peuvent être acceptées (la limite est appliquée aux superglobales $_GET, $_POST et $_COOKIE séparément)"

Réf : http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars

0 votes

Notez que cette valeur est commentée par défaut, donc décommentez-la et changez la valeur désirée.

5voto

Comme David l'a souligné, j'opterais pour KB dans la plupart des cas.

php_value post_max_size 2K

Remarque : mon formulaire est simple, quelques zones de texte seulement, pas de texte long.

(L'abréviation PHP pour KB est K, comme indiqué aquí .)

1voto

ChrisH Points 3447

C'est au serveur http de décider s'il y a une limite. Le produit sur lequel je travaille permet à l'administrateur de configurer la limite.

0 votes

De plus, dans le fichier PNP.INI, il y a un paramètre : max_input_vars qui, dans ma version de PHP : 5.4.16, la valeur par défaut est de 1000. Extrait du manuel : "Combien de variables d'entrée peuvent être acceptées (la limite est appliquée aux superglobales $_GET, $_POST et $_COOKIE séparément)". Réf. : [ [php.net/manual/fr/info.configuration.php#ini.max-input-vars] [1]](http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars][1]) [1] : php.net/manual/fr/info.configuration.php#ini.max-input-vars

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X