411 Length Required

Se requiere una cabecera Content-Length.

Cuándo usarlo

Subidas sin tamaño declarado.

Causas habituales y soluciones

El servidor rechaza una solicitud que tiene cuerpo pero no tiene cabecera Content-Length. Ocurre cuando un cliente envía en streaming con Transfer-Encoding: chunked a un servidor o proxy que rechaza las subidas chunked, o cuando envía un POST sin cuerpo y sin ninguna longitud. Google Cloud Storage y algunos servidores antiguos son conocidos por exigir Content-Length: 0 en las solicitudes POST vacías.

Soluciónalo en el cliente: almacena el cuerpo en un búfer para que la biblioteca pueda definir la longitud, o define tú la cabecera. curl -d define Content-Length automáticamente, pero curl -X POST sin datos no envía ninguna, así que añade -H Content-Length:0. Los frames de HTTP/2 y HTTP/3 marcan el final del cuerpo, así que el problema es exclusivo de HTTP/1.1. nginx acepta cuerpos de solicitud chunked desde la versión 1.3.9.

Error del cliente (4xx)

Los códigos 4xx son errores del cliente: la solicitud en sí es incorrecta, no está autorizada o apunta a algo que no existe. Repetir la misma solicitud no servirá de nada.

Cómo se ve

HTTP/1.1 411 Length Required

Cómo enviarlo

Node.js / Expressres.status(411).end()
Python / Flaskreturn '', 411
nginxreturn 411;

Cómo comprobarlo

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de estado HTTP