X-Accel-Redirect русские имена файлов

Kirill A. Korinskiy catap+nginx at catap.ru
Wed May 6 13:08:30 MSD 2009


At Wed, 6 May 2009 03:42:59 +0400,
Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> Hello!
> 
> On Wed, May 06, 2009 at 02:06:19AM +0400, Kirill A. Korinskiy wrote:
> 
> > At Wed, 6 May 2009 01:17:32 +0400,
> > Maxim Dounin <mdounin at mdounin.ru> wrote:
> > > 
> > > 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 at rambler-co.ru> wrote:
> > > > 
> > > 
> > > Не совсем так.  RFC2616 в этом месте внутренне противоречив - т.к. 
> > > с одной стороны ссылается на RFC822 (который не позволяет ничего 
> > > кроме ASCII), а с другой стороны приводит грамматику,
> > > допускающую использование 8-битных символов в содержимом 
> > > заголовков (очевидно никак не определяя, куда именно следует 
> > > засунуть 8-й бит).
> > > 
> > 
> > Насколько я понял rfc2616 оставляет 8бит по грамматике для X
> > заголовков, и при этом часть заголовков отправляет в rfc822 (который,
> > кстати устарел, и надо читать его замену, похоже).
> 
> Кому именно и что оставляет RFC2616 я затрудняюсь ответить.  IMHO - 
> никому и ничего.  Использование 8-го бита одним местом запрещено, 
> другим - разрешено, и как с этим жить - непонятно.  Т.е. понятно 
> что использовать 8-битные символы вне контролируемого окружения 
> может только самоубийца.
> 
> Что до RFC822 - то устарел он ещё в 2001 году, но читать его всё 
> равно полезно (как минимум - именно он STANDARD).  В настоящий 
> момент актуален RFC5322 (на который и ссылается httpbis), но он 
> всего лишь DRAFT STANDARD.

В общем ясно что ничего не ясно и как жить тоже.

Формально upstream это способ смотреть в контролируемую сеть. В
реальности там может быть что угодно. Так что может сделать лучше
ручку для управления urldecode'ить ли ответы от upstream?

> > > В 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.
> > > 
> > 
> > ясно. Т.е. таки вводят ограничение и убирают противоречивость, я
> > правильно понял?
> 
> Я бы сказал - пытаются задокументировать проблему и не 
> рекомендовать дальнейшее использование 8-битных символов.  Совсем 
> вычистить это место в рамках HTTP/1.1 уже нельзя.

В общем ждем http/1.2 :)

-- 
wbr, Kirill





More information about the nginx-ru mailing list