On Mon, 18 May 1998, Alex Tutubalin/Apache-RUS
team wrote:
> Перед праздниками ко мне пристал Sergey Vovk <vsv@macomnet.ru>
> "ну сделай отключение Expires" (я немного утрирую). Хотя я считаю
> это совсем неправильным, таки сделал.
Спасибо.
>
> ftp://ftp.lexa.ru/pub/apache-rus/*PL24.0*
>
> ChangeLog:
> PL24.0, Apache 1.2.6, 17 May 1988, Alex Tutubalin
> 1. Добавлена директива CharsetDisableForcedExpires, которая запрещает
> выдачу заголовка Expires модулем руссификации. Добавлена по требованию
> (настойчивому желанию) Sergey Vovk <vsv@macomnet.ru>, к использованию
> не рекомендуется по очевидным причинам
Хотя причины очевидны, я все же обозначу комбинацию из 3х условий,
когда использование 'CharsetDisableForcedExpires off'
имеет смысл, по крайней мере, при текущей версии apache-rus:
1. сайт внутренний, вообще не рассчитанный на то, что к нему
будут ходить через транзитные кеши.
2. на сайте требуется поддерживать набор cgi-скриптов с формами,
написанных в так называемой "манере с кнопкой back" ;)
3. Директива CharsetOverrideExpires стоит в положении off.
Таким образом, комбинация настроек
CharsetOverrideExpires off
CharsetDisableForcedExpires off
дает возможность простейшим образом использовать автомат выбора
кодировки по UserAgent, не мудря с redirect на URL в нужной кодировке,
что на практике как раз и требуется, поскольку при этом используется
только внутренний кеш броузера, а сам броузер живет в одной и той же
кодировке всегда :).
Без этого начинаются проблемы с кнопкой back.
Впрочем, если до конца быть точным, то и это не спасает от проблем
с этой самой кнопкой, хотя восстанавливает поведение apache
до состояния родного, только с поддержкой автомата charset.
Теперь о более масштабном... :)
Использование этой комбинации для публичных www-серверов,
очевидно, приведет к тем самым проблемам с транзитными кешами,
против которых боролись,
вводя в apache-rus принудительную выдачу Expires. Именно
эта причина очевидна, и именно поэтому такую комбинацию _нельзя_
устанавливать для публичных серверов, которые _должны_ быть правильно
"подхвачены" кешами.
Кстати,
Как побочный эффект, в связи с распространением последних версий
apache-rus, в которых отпразднована эта победа,
наблюдается снижение эффективности кешей по отношению к русскоязычной
части www - поскольку большинство посетителей используют как раз автомат
выбора кодировки apache-rus, при котором выдаются некешируемые документы.
Как на мой взгляд, автомат выбора кодировки по UserAgent -
вещь хотя и полезная, но _теоретически_ абсолютно вредная,
и было бы совсем правильно, если бы можно было встроить в apache-rus
возможность задать redirect на нужный URL, в зависимости от UserAgent,
в том числе по Dirprefix, Port, Host. и очень хочется, что-бы это было
сделано элегантно внутри самого apache-rus, а не через скрипты,
что можно сделать давно.
То же самое касается redirect по 404, 301, и
т.п, которые достаточно тяжело применять без скриптов, если рассчитывать
на Dirprefix. Мне так кажется, что если принять некоторый
набор _единообразных_ префиксов, типа
/ru/, /ru-koi/, /ru-win/,
и определенный порядок построения дерева документов,
то весь этот механизм не составляет особого труда встроить и поддерживать.
Естественно, при этом придется пользоваться директивами ???Redirect???
(которых нет пока в нужном виде :)
модуля mod_charset, а не от "родного" apache.
> Alex Tutubalin
>
Sergey Vovk, | http://www.macomnet.ru/~vsv/
sysadmin | voice: +7(095)973-4002, 973-4003
"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.