implicit *LWS ?

Maxim Dounin mdounin на mdounin.ru
Ср Окт 6 17:42:29 MSD 2010


Hello!

On Wed, Oct 06, 2010 at 03:48:22PM +0400, Alexandre Snarskii wrote:

> Дано: nginx/0.8.52 (собранный из FreeBSD ports без добавок), вот такой 
> вот запрос (обратите внимание на linear white space внутри поля Accept): 
> 
> GET /picture.jpg HTTP/1.0
> Accept: text/plain, text/html,
>     */*
> Host: .....
> 
> Пытаемся послать его через nginx с минимальным конфигом 
> (location /picture.jpg { proxy_pass http://....; proxy_set_header Host ....; })
> в ngrep'е видим следующее: 
> 
> T 192.168.13.202:52556 -> <....>:80 [AP]
> GET /picture.jpg HTTP/1.0.
> Host: ....
> Connection: close.
> Accept: text/plain, text/html,.
> .
> 
> то есть nginx при проксировании обрезал весь контент поля начиная с CRLF.
> 
> То же самое происходит если пытаться передавать запрос на fastcgi backend,
> в параметре HTTP_ACCEPT я вижу только text/plain, text/html, но не */*.
> С другими хидерами происходит то же самое - как только встречается LWS - 
> поле "обрезается", что для proxy_pass, что для fastcgi_pass. 
> 
> Вопрос: это бага или фича ? Если фича - обойти как-нибудь можно ? 

Это фича, LWS не поддерживаются, да и в HTTPbis они deprecated.

Если очень нужно чтобы заработало вот прям здесь и сейчас - 
где-то в районе nginx@ пробегал патч, но он ужасненький:

http://nginx.org/pipermail/nginx/2010-September/022608.html

А что за чудо генерит такие запросы?

Maxim Dounin



Подробная информация о списке рассылки nginx-ru