411 Length Required

Un en-tête Content-Length est requis.

Quand l’utiliser

Envois sans taille déclarée.

Causes courantes et solutions

Le serveur refuse une requête qui a un corps mais pas d’en-tête Content-Length. Cela arrive quand un client diffuse en Transfer-Encoding: chunked vers un serveur ou un proxy qui rejette les envois chunked, ou envoie un POST sans corps ni longueur. Google Cloud Storage et certains serveurs plus anciens exigent notoirement Content-Length: 0 sur les requêtes POST vides.

Corrigez côté client : mettez le corps en mémoire tampon pour que la bibliothèque puisse définir la longueur, ou définissez l’en-tête vous-même. curl -d définit Content-Length automatiquement, mais curl -X POST sans données n’en envoie pas : ajoutez -H Content-Length:0. En HTTP/2 et HTTP/3, les trames marquent la fin du corps, le problème est donc propre à HTTP/1.1. nginx accepte les corps de requête chunked depuis la version 1.3.9.

Erreur client (4xx)

Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.

À quoi ça ressemble

HTTP/1.1 411 Length Required

Comment l’envoyer

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

Comment le vérifier

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

Ouvrir l’outil Codes de statut HTTP