Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

Re: [apache-rus] Vary (кажись, в самое время :)



> From apache-rus-dev-null@apache.lexa.ru Sat May 22 00:08:51 1999
> To: apache-rus@lists.lexa.ru
> From: Alex Tutubalin <lexa@lexa.ru>
> Subject: [apache-rus] Vary (кажись, в самое время :)
> Date: Fri, 21 May 1999 23:50:41 +0300
>
> Hi,
>
>  AT>> Ничего не понял :). Директива никуда не выдается, r->pool у нас вроде
>  AT>> общий на всех. Поясните простыми словами.
>  alr> Выдаётся поле Vary. Если его кто-не не сформировал раньше.
> У кого-то из нас проблемы с русским языком. То-ли я переутомился на ниве 
> перестановки мебели в квартире, то-ли Вы как-то не так пишете.
>
> Вашу фразу я (буквально) понял так: "Поле Vary:
> /,если его кто-то не сформировал раньше,/ выдается Russian Apache даже при 
> CharsetDisableAcceptCharset On"  А если его кто-то сформировал, то не
> выдается ?

hint: как сделать, чтобы и волки целы и овцы сыты.

о том как сделать руссккме тексты кэшируемыми, и они не залипали
в браузерах, и при этом сервер реагировал на accept-charset,
user-agent, девичью фамилию матери и т.д.
подразумевается, что все вышесказанное относится к полю
Vary, которое выдается mod_charset. Другие случаи (mod_nagotistion)
не рассматриваются, покольку не являются такой глобальной проблемой, как
некэшируемость. :)

задача: имеются документы, которые нужно представить  вразличных кодировках
и кодировка зависит от accept-charset, user-agent и каких-либо других
косвенных признаков, позволяющих выяснить предпочтения клиента в кодировках.
следует сделать возможным кэширование этих документов, но исключить
возможность "залипания" страниц с одной кодировкой в кэше.
в качестве кэше имеется в виду squid.

решение:

[skipped charset tables and user-agents definitions]

CharsetSelectionOrder Portnumber UserAgent

CharsetVaryDiscard on
CharsetDisableForcedExpires on

# optional, что-бы с lynxом не было лишних заморочек
CharsetUseMultiViews on

Listen *:80  
Listen *:8000
Listen *:8001
Listen *:8002
Listen *:8003
Listen *:8004
Listen *:8005
CharsetByPort koi8-r 8000
CharsetByPort windows-1251 8001
CharsetByPort ibm866 8002
CharsetByPort iso-8859-5 8003
CharsetByPort x-mac-cyrillic 8004
CharsetByPort koi7 8005


CharsetAutoRedirect koi8-r :8000
CharsetAutoRedirect windows-1251 :8001
CharsetAutoRedirect ibm866 :8002
CharsetAutoRedirect iso-8859-5 :8003
CharsetAutoRedirect x-mac-cyrillic :8004
CharsetAutoRedirect koi7 :8005
CharsetNormalizeTypes image/ application/ video/ audio/
CharsetNormalizeToURL :80 200

что в результате - документы с различными кодировками однозначно представлены
различными URL'ами и залипание страниц с одной кодировкой в кэшах исключается.

Moved temporary в кэше (squide) не залипают, по РФСям - нигде тоже не
должны.

Единственная проблема, которая у нас остается, это то, что все URL'ы с
текстом не унифицированы, а отличаются либо портами, либо hostname,
префиксы etc. Роботы, посещающие сайт либо не будут его смотреть (многие 
не ходят по moved temporary) либо если его возьмут, то у них в URL
будет иметь не очень удобный вид. Тут, думаю, возможно такое решение -
если сервер принимая запрос на 80-том порту, исходя из запроса клиента
не может сделать вывод о требуемой кодировке, он отдает ему в default,
без перенаправлений на другой порт (URL), сопровождая его Vary (без
expire или с expire)

По моим прикидкам, все достаточно законно, RFC не нарушает, пользу имеет.




Sincerely your,
	Cyril A. Vechera

email:cyril@piter.net          ---------              http://sply.piter.net





Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.