LINUX.ORG.RU

HTTP POST: chunked без Content-Length = 411 Length Required

 ,


0

1

Есть некий RPC который посылает POST запрос с Transfer-Encoding: chunked, и не указывает Content-Length и все это работало, пока не пришлось работать через lighttpd

lighttpd поддерживает http 1.1 отправляет отлуп с 411 кодом, и тут возник вопрос кто прав?

ps. https://tools.ietf.org/html/rfc2616#section-4.4

For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body MUST include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant.

но в том то и косяк что вроде все compliant?

Deleted

Тренируй гугл-скилл, вроде начал неплохо.. https://github.com/lighttpd/lighttpd1.4

missing for HTTP/1.1 compliance
-------------------------------
- parsing chunked POST request
anonymous
()

Если клиент посылает запрос HTTP/1.1, то lighttpd виноват, chunked запрос должен поддерживаться HTTP/1.1 сервером.

nowhere
()
Ответ на: комментарий от nowhere

клиент самописный потому может быть и не прав, но выше анонимус правильно отметил

Deleted
()

Не знаю как у lighttpd, а у nginx всё очень плохо с приемом Transfer-Encoding: chunked. До версии 1.3 он аналогично 411 отдавал, а с версии 1.3 начал творить страшное непотребство — вычитывает весь поток (бесконечный, ога) и в обычном виде отдает бэкенду. Решение может быть только одно — отказываться от проксирующего сервера для таких запросов.

Reset ★★★★★
()
Ответ на: комментарий от Deleted

Там не про то написано. В 1.4.4 chunked корректно не поддерживается.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.