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_filesizeopost_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:
En .htaccess:
2) Aumentar el límite en Nginx
Agrega en la configuración:
Reiniciar Nginx después.
3) Ajustar el límite en Apache
En apache2.conf o .htaccess:
(0 significa ilimitado, pero puedes poner un límite específico en bytes).
4) Verificar límites en el framework
En Laravel:
En Node.js (Express):
En Django:
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.