¿Cuál es el límite de tamaño de una solicitud HTTP POST?

Resuelto invertedSpear asked hace 54 años • 9 respuestas

Lo siento si esto está duplicado, creo que lo estaría, pero no pude encontrar nada.

Tengo una aplicación flexible en la que estoy publicando datos en un servidor PHP/MySQL a través de Internet Explorer. No he tenido ningún problema todavía, pero saber esto de antemano podría ahorrarme mucha frustración y trabajo. ¿Existe un límite de tamaño para publicar datos a través de HTTP?

  • Este artículo dice "no":
    http://www.netlobo.com/ie_form_submit.html
  • Esta discusión dice "sí":
    http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method

Y todo va y viene de lo que puedo encontrar en línea. Por lo tanto , limite las respuestas a números probados/verificados personalmente.

Quiero publicar una cadena XML que puede ser bastante grande (digamos hasta 5 MB).

Si hay alguna diferencia: el navegador siempre será Internet Explorer (nuestro producto lo requiere), POST proviene de HTTPServiceFlex, el servidor web es PHP, la base de datos es MySQL.

invertedSpear avatar Jan 01 '70 08:01 invertedSpear
Aceptado

Depende de la configuración del servidor. Si estás trabajando con PHP bajo Linux o similar, puedes controlarlo usando el archivo de configuración .htaccess, así:

#set max post size
php_value post_max_size 20M

Y sí, personalmente puedo dar fe de que esto funciona :)

Si está utilizando IIS, no tengo idea de cómo establecería este valor en particular.

brettkelly avatar Mar 02 '2010 16:03 brettkelly

La parte URL de una solicitud (GET y POST) puede estar limitada tanto por el navegador como por el servidor; generalmente, el tamaño seguro es 2 KB, ya que casi no hay navegadores o servidores que utilicen un límite menor.

El cuerpo de una solicitud (POST) normalmente está limitado por el servidor en función del tamaño de bytes para evitar un tipo de ataque DoS (tenga en cuenta que esto significa que el carácter de escape puede aumentar el tamaño de bytes del cuerpo). La configuración de servidor más común es 10 MB, aunque todos los servidores populares permiten aumentar o disminuir esto a través de un archivo o panel de configuración.


1 Existen algunas excepciones con los navegadores de teléfonos móviles más antiguos u otros dispositivos pequeños; en esos casos se trata más de una función del espacio de almacenamiento dinámico reservado para este propósito en el dispositivo que de cualquier otra cosa.

David avatar Mar 02 '2010 16:03 David

Además, en el archivo PHP.INI hay una configuración:

max_input_vars

que en mi versión de PHP: 5.4.16 el valor predeterminado es 1000.

Del manual: "¿Cuántas variables de entrada se pueden aceptar (el límite se aplica a $_GET, $_POST y $_COOKIE superglobal por separado)"

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

Nikolay Ivanov avatar Nov 08 '2013 13:11 Nikolay Ivanov

Puede publicar una gran cantidad de datos configurando la variable php.ini: max_input_vars el tamaño predeterminado de esta variable es 1000, pero si desea enviar una gran cantidad de datos debe aumentar el tamaño en consecuencia. Si no puede establecer el tamaño desde ini_set, debe hacerlo directamente htaccesso realizando cambios en el archivo php.ini.

max_input_vars  2500
memory_limit    256M
Nilesh Chourasia avatar Mar 10 '2015 13:03 Nilesh Chourasia

Como señaló David, elegiría KB en la mayoría de los casos.

php_value post_max_size 2K

Nota: mi formulario es simple, solo unos pocos cuadros de texto, no texto largo.

(La abreviatura PHP para KB es K, como se describe aquí ).

ChrisDeDavidMindflowAU avatar Jun 27 '2013 09:06 ChrisDeDavidMindflowAU