Skip to main content

⬆️ Error 413 – Carga útil demasiado grande (Payload Too Large)

El error 413 indica que el servidor rechaza la solicitud porque el tamaño del contenido enviado (archivo, formulario, JSON, etc.) es demasiado grande y supera los límites establecidos en el servidor o la aplicación.

Este error es común en cargas de archivos, peticiones API grandes y formularios pesados.


Causas más comunes

  • 📦 El archivo que se intenta subir excede el límite permitido.

  • 📝 El servidor tiene configurado un tamaño máximo muy bajo para uploads o requests.

  • 🔧 php.ini con valores pequeños en upload_max_filesize o post_max_size.

  • 🌐 Nginx o Apache limitan el tamaño de la solicitud.

  • 🛡️ Firewall o WAF bloquea cargas grandes por seguridad.

  • 📤 APIs que no aceptan cuerpos (body) mayores a cierto tamaño.

  • 🔐 Clientes que envían datos comprimidos incorrectamente o demasiado pesados.


🔧 Soluciones recomendadas

1️⃣ Incrementar los límites en PHP (si aplica)

Editar php.ini o .htaccess:


upload_max_filesize = 100M post_max_size = 120M max_execution_time = 300 max_input_time = 300

En .htaccess:


php_value upload_max_filesize 100M php_value post_max_size 120M

2️⃣ Aumentar el límite en Nginx

Agrega en la configuración:


client_max_body_size 100M;

Reiniciar Nginx después.


3️⃣ Ajustar el límite en Apache

En apache2.conf o .htaccess:


LimitRequestBody 0

(0 significa ilimitado, pero puedes poner un límite específico en bytes).


4️⃣ Verificar límites en el framework

En Laravel:


$request->validate([ 'archivo' => 'max:102400', // en KB ]);

En Node.js (Express):


app.use(express.json({ limit: '50mb' }));

En Django:


DATA_UPLOAD_MAX_MEMORY_SIZE = 52428800 # 50MB

5️⃣ Dividir el archivo en partes (chunk upload)

Muy útil para:

  • Videos

  • Archivos grandes

  • Aplicaciones móviles

  • Paneles administrativos

Ejemplo: S3, Firebase y Dropzone.js soportan carga por bloques.


6️⃣ Revisar el firewall o WAF

ModSecurity o firewalls avanzados pueden bloquear cargas grandes.

Solución:
Crear excepciones para endpoints de subida de archivos.


7️⃣ Optimizar tamaño del cuerpo de la solicitud

Si estás enviando un JSON enorme:

  • Compactar datos

  • Enviar solo lo necesario

  • Usar paginación o lotes (batch requests)


🔐 Consejo Pro

Siempre define límites razonables para evitar abusos:

  • Límite de subida por usuario

  • Tipos de archivo permitidos

  • Tamaño máximo por tipo de contenido

  • Validación tanto en cliente como en servidor

Esto protege tu aplicación de ataques como DoS por carga masiva.