Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: X-Accel-Redirect русски е имена файлов
Hello!
On Tue, May 05, 2009 at 07:54:58PM +0400, Kirill A. Korinskiy wrote:
> At Tue, 5 May 2009 18:33:13 +0400,
> Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
>
> > > >
> > > > Выдавать "X-Accel-Redirect: /content/mp3download/Мара - самолеты.mp3".
> > > >
> > >
> > > А что мешает сделать urlencode для заголовков backend?
> >
> > А зачем ? Чтобы поломать существующую совместимость ?
> >
>
> прочитал внимательно rfc 2616. Да, я не прав. Имя заголовка, да, не
> может быть 8 битным, а вот значение ? вполне.
>
> Записал себе на память:
> http://catap.ru/blog/2009/05/05/http-russian-letters-on-http-headers/
Не совсем так. RFC2616 в этом месте внутренне противоречив - т.к.
с одной стороны ссылается на RFC822 (который не позволяет ничего
кроме ASCII), а с другой стороны приводит грамматику,
допускающую использование 8-битных символов в содержимом
заголовков (очевидно никак не определяя, куда именно следует
засунуть 8-й бит).
В httpbis это место обросло новой грамматикой и человекочитаемым
абзацем про то что именно следует делать с 8-битными заголовками
(http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-06#section-4.2):
message-header = field-name ":" OWS [ field-value ] OWS
field-name = token
field-value = *( field-content / OWS )
field-content = *( WSP / VCHAR / obs-text )
Historically, HTTP has allowed field-content with text in the ISO-
8859-1 [ISO-8859-1] character encoding (allowing other character sets
through use of [RFC2047] encoding). In practice, most HTTP header
field-values use only a subset of the US-ASCII charset [USASCII].
Newly defined header fields SHOULD constrain their field-values to
US-ASCII characters. Recipients SHOULD treat other (obs-text) octets
in field-content as opaque data.
Maxim Dounin
|