Czy istnieje sposób na uniknięcie wymaganych błędów związanych z długością treści nginx 411?

11

Otrzymuję status 411 z powrotem od nginx, gdy próbuję zrobić PUT bez określania długości treści. Czy jest jakiś sposób, aby temu zapobiec?


źródło

Odpowiedzi:

5

Żądania PUT wymagają długości treści. To nie Nginx, to HTTP, który stawia ten wymóg. Żądanie PUT, podobnie jak żądania POST, musi mieć treść. Ciało to może mieć zerową długość, ale jeśli tak, musisz to wyraźnie powiedzieć. Oczywiście nie można zakładać, że zawartość będzie kontynuowana, dopóki połączenie nie zostanie zamknięte (co sugeruje brak nagłówka o długości treści), ponieważ serwer musi być w stanie odpowiedzieć na żądanie przed zamknięciem połączenia.

tylerl
źródło
3
to jest niepoprawne. w3.org/Protocols/rfc2616/rfc2616-sec4.html „Obecność treści wiadomości w żądaniu jest sygnalizowana przez włączenie pola nagłówka Content-Length lub Transfer-Encoding w nagłówkach wiadomości żądania”. Jest to błąd w Nginx, który został naprawiony w nowszych wersjach. Zauważ, że ten błąd został naprawiony dla testu POST na długo przed PUT.
Nick Palmer,
2

Stare pytanie, ale ponieważ natknąłem się na to z wyszukiwania w sieci:

NginX 1.3.9 i nowsze obsługują „Transfer-Encoding: chunked” po wyjęciu z pudełka dla POST i PUT.

Dzięki przesyłaniu dzielonemu możesz wysyłać pliki bez wcześniejszego ustawiania długości zawartości.

Deestan
źródło
Tak, naprawiłem to, dzięki!
rogerdpack