ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: символ '_' в http headers



On Tue, Aug 28, 2007 at 06:53:17PM +0400, Igor Sysoev wrote:

> On Tue, Aug 28, 2007 at 05:24:13PM +0300, Gena Makhomed wrote:
> 
> > Здравствуйте, Igor!
> > 
> > Tuesday, August 28, 2007, 2:52:16 PM, you wrote:
> > 
> > >> >>> client sent invalid header line: "X-GATEWAY_ID: ....
> > >> >>> Nginx смущает символ '_'.
> > >> 
> > >> >> почему _ не стандартный ?
> > >> >> по rfc  он вполне допускается а заголовке.
> > >> 
> > >> IS> С "_" проблема заключается в том, что при преобразовании
> > >> IS> в $http_... теряется разница между "-" и "_".
> > >> 
> > >> Игорь, а если преобразовывать - в _ а _ в __ ?
> > >> это преобразование будет практически однозначным,
> > >> кроме тех случаев, когда - и _ будут идти подряд.
> > >> (после преобразования _- станет неотличимо от -_)
> > 
> > IS> Заголовки с "_" можно передавать в прокси и так далее.
> > IS> Я не знаю ни одного распространённого заголовка c "_",
> > IS> который нужно было бы как-то обрабатывать в nginx'е.
> > 
> > я имею ввиду преобразование заголовков в переменные $http_
> > сейчас заголовки с _ в имени считаются invalid потому что
> > 
> > IS>>> при преобразовании в $http_... теряется разница между "-" и "_".
> > 
> > заголовок   X-GATEWAY-ID преобразуется в $http_x_gateway_id
> > а заголовок X-GATEWAY_ID преобразуется в $http_x_gateway__id
> > 
> > и разница между символами - и _ потеряна не будет.
> 
> Такие заголовки можно передавать бэкенду, если поставить
> ignore_invalid_headers off;
> 
> Что касается $http_x_gateway__id, то я не вижу смысла их использовать.
> В логах, разве что.

В логах можно использовать $http_x_gateway_id.
Та же проблема будет на бэкендах. И Apache, и FastCGI-сервер этот заголовок
увидит как HTTP_X_GATEWAY_ID.

В общем, я не вижу смысла делать какую-то специальную обработку для "_".


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.