Я получаю 411 статус от nginx при попытке сделать PUT без указания длины содержимого. Есть ли способ отключить это?
Я получаю 411 статус от nginx при попытке сделать PUT без указания длины содержимого. Есть ли способ отключить это?
Ответы:
Вы можете попробовать добавить это к вашему запросу:
curl -i -X PUT -H 'Длина содержимого: 0' ' http://www.example.com/test '
Попробуйте установить HttpChunkinModule или обновить Nginx до 1.3.9+
Этот модуль больше не нужен для Nginx 1.3.9+, поскольку начиная с версии 1.3.9 ядро Nginx уже имеет встроенную поддержку для фрагментированных тел запросов.
PUT-запросы требуют Content-Length. Это не Nginx, это HTTP, который делает это требование. Запрос PUT, как и запросы POST, обязательно должен иметь тело контента. Это тело может быть нулевой длины, но если это так, то вы должны явно сказать об этом. Очевидно, вы не можете предполагать, что контент продолжается до тех пор, пока соединение не будет закрыто (что и подразумевает отсутствующий заголовок длины контента), поскольку сервер должен иметь возможность ответить на запрос до того, как соединение будет закрыто.
Старый вопрос, но так как я наткнулся на это из веб-поиска:
NginX 1.3.9 и выше поддерживает «Transfer-Encoding: chunked» из коробки для POST и PUT.
При передаче по частям вы можете отправлять файлы без предварительной настройки длины содержимого.