Ich erhalte einen 411-Status von nginx zurück, wenn ich versuche, einen PUT ohne Angabe der Inhaltslänge durchzuführen. Gibt es eine Möglichkeit, dies zu verhindern?
Sie könnten versuchen, dies zu Ihrer Abfrage hinzuzufügen:
curl -i -X PUT -H 'Inhaltslänge: 0' ' http://www.example.com/test '
Versuchen Sie, das HttpChunkinModule zu installieren oder Nginx auf 1.3.9+ zu aktualisieren
Dieses Modul wird für Nginx 1.3.9+ nicht mehr benötigt, da der Nginx-Kern seit 1.3.9 bereits eine integrierte Unterstützung für die Chunked Request Body hat.
PUT-Anforderungen erfordern Content-Length. Es ist nicht Nginx, sondern HTTP, das diese Anforderung stellt. PUT-Anforderungen haben wie POST-Anforderungen notwendigerweise einen Inhaltskörper. Dieser Körper kann eine Länge von Null haben, aber wenn dies der Fall ist, müssen Sie dies ausdrücklich sagen. Natürlich können Sie nicht davon ausgehen, dass der Inhalt fortgesetzt wird, bis die Verbindung geschlossen wird (was ein fehlender Header mit Inhaltslänge impliziert), da der Server in der Lage sein muss, auf die Anforderung zu antworten, bevor die Verbindung geschlossen wird.
Alte Frage, aber da ich von einer Websuche darauf gestoßen bin:
NginX 1.3.9 und höher unterstützt "Transfer-Encoding: Chunked" für POST und PUT.
Mit Chunked Transfer können Sie Dateien senden, ohne zuerst die Länge des Inhalts festzulegen.
quelle