Escuché que HTTP POST no tiene un límite de especificación en el tamaño de los datos que puede enviar. ¿Es eso cierto o hay un límite realmente alto?
Respuestas:
EDITAR (2019) Esta respuesta ahora es bastante redundante, pero hay otra respuesta con información más relevante.
Más bien depende del servidor web y del navegador web:
Internet explorer Todas las versiones 2GB-1
Mozilla Firefox Todas las versiones 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1
Aunque IIS solo admite 200 KB de forma predeterminada, la metabase debe modificarse para aumentar esto.
http://www.motobit.com/help/scptutl/pa98.htm
El método POST en sí no tiene ningún límite en el tamaño de los datos.
Es bastante sorprendente cómo todas las respuestas hablan de IIS, como si ese fuera el único servidor web que importara. Incluso en 2010, cuando se hizo la pregunta, Apache tenía entre el 60% y el 70% de la participación de mercado . De todas formas,
min(serverMaximumSize, clientMaximumSize)
.Estos son los tamaños de cuerpo POST para algunos de los servidores HTTP más populares:
No hay límite según el protocolo HTTP en sí, pero las implementaciones tendrán un límite superior práctico. He enviado datos que superan los 4 GB mediante POST a Apache, pero algunos servidores tenían un límite de 4 GB en ese momento.
LimitRequestBody
directiva.
POST permite enviar una longitud arbitraria de datos a un servidor, pero existen limitaciones basadas en tiempos de espera / ancho de banda, etc.
Creo que, básicamente, es más seguro suponer que es no está bien para enviar gran cantidad de datos.
Diferentes servidores web IIS pueden procesar diferentes cantidades de datos en el 'encabezado', según este artículo (ahora eliminado); http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;
Tenga en cuenta que no hay límite en la cantidad de elementos FORM que puede pasar a través de POST, sino solo en el tamaño agregado de todos los pares de nombre / valor. Mientras que GET está limitado a 1024 caracteres, los datos POST están limitados a 2 MB en IIS 4.0 y 128 KB en IIS 5.0. Cada nombre / valor está limitado a 1024 caracteres, según lo impuesto por la especificación SGML. Por supuesto, esto no se aplica a los archivos cargados usando enctype = 'multipart / form-data' ... No he tenido problemas para cargar archivos en el rango de 90 a 100 MB usando IIS 5.0, además de tener que aumentar el valor server.scriptTimeout ¡así como mi paciencia!
En una aplicación que estaba desarrollando, encontré lo que parecía ser un límite POST de aproximadamente 2 KB. Resultó ser que accidentalmente codificaba los parámetros en la URL en lugar de pasarlos en el cuerpo. Entonces, si tiene un problema allí, definitivamente hay un límite muy pequeño en el tamaño de los datos POST que puede enviar codificados en la URL.
HTTP puede no tener un límite superior, pero los servidores web pueden tener uno. En ASP.NET hay un límite de aceptación predeterminado de 4 MB, pero usted (el desarrollador / webmaster) puede cambiarlo para que sea más alto o más bajo.