Skip to main content

📏 Error 411 – Se requiere longitud (Length Required)

El error 411 indica que el servidor rechaza la solicitud porque el cliente no especificó el tamaño del contenido que está enviando.

Es decir: el servidor necesita saber cuántos bytes va a recibir, pero el navegador, API o aplicación no envió el encabezado Content-Length.

Este encabezado es obligatorio en muchas solicitudes POST, PUT, PATCH o cargas de archivos.


Causas más comunes

  • 📭 Solicitudes POST/PUT sin el encabezado Content-Length.

  • 🔧 APIs o servidores que exigen este encabezado por seguridad.

  • 📦 Uploads de archivos donde no se envía el tamaño exacto.

  • 🧩 Librerías HTTP mal configuradas (cURL, Axios, Fetch, etc.).

  • 🚫 El cliente intenta enviar contenido vacío cuando no está permitido.

  • ⚙️ Firewalls o proxies que eliminan o bloquean el encabezado.

  • 🔐 Configuraciones de seguridad del servidor que requieren longitudes explícitas.


🔧 Soluciones recomendadas

1️⃣ Asegurar que la solicitud incluya el encabezado Content-Length

Ejemplo:


Content-Length: 348

La longitud debe ser el tamaño exacto del cuerpo (body) de la petición.


2️⃣ Verificar que el body de la solicitud no esté vacío

Algunos servidores rechazan solicitudes sin contenido.

Ejemplo incorrecto:


POST /api/guardar Content-Length: 0

Solución: enviar datos válidos o usar un método adecuado (GET, HEAD).


3️⃣ Configurar correctamente librerías o frameworks

En cURL:

Se envía automáticamente, pero si usas opciones personalizadas, asegúrate de no removerlo.


curl -X POST -d '{"nombre":"Arturo"}' https://api.com/endpoint

En Axios:


axios.post(url, data, { headers: { 'Content-Length': JSON.stringify(data).length } });

En Fetch API:

Fetch calcula Content-Length automáticamente, salvo en entornos especiales (Node.js sin polyfill).


4️⃣ Revisar si el proxy/firewall está bloqueando el encabezado

Algunas redes corporativas quitan encabezados sensibles.

Solución:
Configurar el servidor o proxy para permitir Content-Length.


5️⃣ Verificar configuraciones del servidor

Apache:

En configuraciones estrictas:


LimitRequestBody

Si se usa mal, puede requerir valores exactos.

Nginx:

Asegúrate de no tener restricciones como:


client_max_body_size 0;

y que el body se reciba correctamente.


6️⃣ Para APIs: confirmar que el endpoint espere datos

Si la API espera JSON o formulario y recibe un body vacío → 411.

Solución: enviar datos correctos:


{ "user": "admin", "password": "1234" }

🔐 Consejo Pro

Cuando construyas APIs o backends:

  • Valida que el cliente envíe Content-Length.

  • Usa límites para evitar ataques de carga infinita:
    → OWASP recomienda validar tamaño máximo y mínimo del body.

Esto mejora la seguridad y el rendimiento del servidor.