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?

nginx 

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.


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.


Tak, naprawiłem to, dzięki!
rogerdpack
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.