Re: CGPro and URL Escaping

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Fri 17 Dec 2004 - 15:05:04 MSK

RFC - вещь не скользская. "/" в данном контесте НЕ есть path separator, и как раз для того, чтобы он им не был - используется %2F.

On Fri, 17 Dec 2004 14:47:51 +0300
  "Maxim Cherniavsky" <CGatePro@mx.ru> wrote:
> День добрый
> Натолкнулся тут на странную вещь. В web-интерфейсе, CGPro иногда странно

>ведет себя формируя ссылки, а именно ссылки к аттачам:

>
> http://my-mailserver.ru/Session/16-5Rzk8YMbsgIeU8k0FojS/MessagePart/INBOX%2Fsubfolder1%2Fsubfolder2%2Fsubfolder/1-B1/file.zip
> Собственно смущает escaping символа "/" на "%2F"
>
> Например апач такую конструкцию не пропустит и сразу даст 404 Not Found
>(см. util.c функция ap_unescape_url), на что собственно и напаролись,

> пробрасывая с помощью mod_rewrite запросы на CGPro
> Т.к. стало интересно пришлось загялнуть в RFC 2396 :)
>
> Вот что раскопал:
> 2.4.2. When to Escape and Unescape
>
> A URI is always in an "escaped" form, since escaping or unescaping a
> completed URI might change its semantics. Normally, the only time
> escape encodings can safely be made is when the URI is being created
> from its component parts; each component may have its own set of
> characters that are reserved, so only the mechanism responsible for
> generating or interpreting that component can determine whether or
> not escaping a character will change its semantics. Likewise, a URI
> must be separated into its components before the escaped characters
> within those components can be safely decoded.
>
> И далее:
>
> 3.3. Path Component
> ......
> The path may consist of a sequence of path segments separated by a
> single slash "/" character. Within a path segment, the characters
> "/", ";", "=", and "?" are reserved.
>
> Собственно вопрос в правомочности escaping'а символа "/", т.к. исходя из
>того, что я прочел в RFC и подсмотрел в апаче мне кажется escape'ть не 
>надо, хотя я вполне могу ошибатся ибо RFC вещь скользкая :)

>
> Спасибо
>
>
>
> --
> Best regards,
> Maxim Cherniavsky
> Comstar-UTS, Internet Division
> mailto: maxim (at) comstar.ru
>
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <CGatePro@mx.ru>.
>
> Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru>
> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru>
> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>
> Для административных запросов адрес <CGatePro-request@mx.ru>
>
>
>

Sincerely,
Vladimir Получено Fri Dec 17 12:05:08 2004

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:13:23 MSK