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

Igor Sysoev is at rambler-co.ru
Tue Aug 28 18:53:17 MSD 2007


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://sysoev.ru





More information about the nginx-ru mailing list