411 Length Required

Ein Content-Length-Header ist erforderlich.

Wann du ihn verwendest

Uploads ohne angegebene Größe.

Häufige Ursachen und Lösungen

Der Server lehnt eine Anfrage ab, die einen Body, aber keinen Content-Length-Header hat. Das passiert, wenn ein Client mit Transfer-Encoding: chunked an einen Server oder Proxy streamt, der Chunked-Uploads ablehnt, oder einen POST ganz ohne Body und ohne Länge sendet. Google Cloud Storage und einige ältere Server verlangen bekanntermaßen Content-Length: 0 bei leeren POST-Anfragen.

Behebe es auf dem Client: Puffere den Body, damit die Bibliothek die Länge setzen kann, oder setze den Header selbst. curl -d setzt Content-Length automatisch, aber curl -X POST ohne Daten sendet keinen, also ergänze -H Content-Length:0. Bei HTTP/2 und HTTP/3 markieren Frames das Ende des Bodys, das Problem betrifft also nur HTTP/1.1. nginx akzeptiert Request-Bodys mit Chunked-Encoding seit Version 1.3.9.

Client-Fehler (4xx)

4xx-Codes sind Client-Fehler: Die Anfrage selbst ist fehlerhaft, nicht autorisiert oder verweist auf etwas, das es nicht gibt. Dieselbe Anfrage erneut zu senden hilft nicht.

So sieht es aus

HTTP/1.1 411 Length Required

So sendest du ihn

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

So prüfst du ihn

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

HTTP-Statuscodes öffnen