Re: Бага в proxy_method

Maxim Dounin mdounin at mdounin.ru
Mon Jan 14 15:07:33 UTC 2013


Hello!

On Mon, Jan 14, 2013 at 04:50:52PM +0200, Gena Makhomed wrote:

> On 14.01.2013 16:24, Maxim Dounin wrote:
> 
> >>>>>А, нет, вру, должно быть всё нормально и без пробела, это
> >>>>>действительно бага.
> >>>>
> >>>>>У тебя proxy_method задан на уровне http{}, да?
> >>>>
> >>>>Да, на уровне http{}.
> >>
> >>MD> Патч.
> >>
> >>Неправильный патч.
> >>Правильно будет делать trim() и добавлять пробел всегда.
> 
> >А не по^Wвсё ли равно?  Цель схлопнуть несколько пробелов в один,
> >если их там вдруг больше одного, мне представляется старнной и
> >малоосмысленной.  Пробел - разделитель, сколько их там будет, если
> >пользователь написал в конфиге метод с пробелами - неважно.
> 
> никто не может гарантировать, что все http backend`ы будут правильно
> работать, если вместо ожидаемого ими одного пробела придет
> несколько.

Для этого надо явно написать более одного пробела в конфиге, что 
как бы позволяет предположить, что пользователь этого 
действительно хотел.

> да и просто - некрасиво, что в этом месте nginx будет нарушать RFC.
> 
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1
> 
>   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF
> 
>   SP             = <US-ASCII SP, space (32)>
> 
> P.S. кроме того, http://en.wikipedia.org/wiki/Robustness_principle

Читать про "implied *LWS" там тут:

http://tools.ietf.org/html/rfc2616#section-2.1

Несколько пробелов - это допустимо.

-- 
Maxim Dounin
http://nginx.com/support.html



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