In <35EEE7EF.D5D37E34@kemsu.ru> Roman Bondarev (POMAH) (pomah@kemsu.ru) wrote:
RP> Я действительно надеюсь, что последний,
Зря надешся... grin
RP> задолбало уже писать об одном и том же...
А меня нет ? Но приходится :-(( Ибо похоже, что тут одни Фомы Неверующие в
mailing list пишут...
RP> Я тут вчера вечером посидел, покумекал и вот что сообразил:
RP> Предложение о дополнительных исходных кодировок следует скрестить с
RP> механизмом Language. Насколько я себе помню, в зависимости от значения
RP> Language в браузере сервер может выдавать файл типа index.ru.html при
RP> запросе на index.html. При этом Language связывается с "расширением"
RP> .ru.
Черта с два. На запрос index.html может выдаться index.html.ru,
index.html.RU и т.п., но никак не index.ru.html, увы. Ты бы перед тем как
размышлениям предаваться сначала бы доку на Apache почитал. Оно, знаешь ли,
помогает. Я понимаю: читать доку для "наших людей" -- это уже совсем себя не
уважать, но может все-таки переломишь себя ? Что произойдет если файлов
несколько (index.html.ru, index.html.RU, etc. :-) -- бог его знает (лучше
до такого не доводить -- действительно бог его знает: это зависит от порядка
файлов в подкаталоге :-)
RP> Почему бы подобный механизм не применить и в моем случае?
Потому что глупо иметь разные понятия о том, что такое расширение в разных
частях одной программы! Либо менять и в mod_charset и в mod_mime и в
mod_negotiation все синхронно. И мне предложенный в Apache подход нравится я
я бы предпочел полное согласование CharsetByExtension с AddLanguage или с
AddEncoding :-)) Выдача index.ru.html приведет к необходимости полного
перекраивания всего на свете...
RP> Задавать :
RP> DefaultSource koi8
RP> AddSourceEnc windows-1251 .win.
RP> При этом можно условиться:
RP> 1. Если на сервер существует только файл index.win.html, то выдавать
RP> только его.
RP> 2. Если существуют index.html и index.win.html, то без явного запроса
RP> выдавать index.html (то есть, существует приоритет .html перед
RP> .win.html)
RP> 3. Если существует несколько - .win.html, .iso.html (хотя это уже
RP> перебор), то, или не выдавать ни один документ, или задавать приоритет
RP> выдачи.
Угу. Уряяя. Изобретен велосипед! Жаль только, что патент на него тебе не
выдадут :-(( Ибо ты предлагаешь то, что уже делается mod_negotiation для
языков сделать еще и для charset'ов. Что сказать ? Я -- обеми руками за.
Только так, чтобы оно было совместимо с тем, что Apache делает сейчас, а
не с тем, что, как тебе кажется, он делает... Но предпочел бы, чтобы это было
сделано там, где это должно быть сделано: в mod_negitioatin. Чтобы на запрос
файла index выдавался бы не только index.html, не только index.win.html (как
ты предлагаешь :-), но и index.gz.html.ru (как это делается ПРЯМО СЕЙЧАС! Если,
конечно, у человека в настройках написано, что он готов принять русский
файл... :-) Может быть полезно было бы сделать не совсем так, как в
mod_negotiation, когда он начинает вопить:
-- cut --
Not Acceptable
An appropriate representation of the requested resource /~khim/a could not be
found on this server.
Available variants:
a.html.ru , type text/html, language ru
-- cut --
Если у человека не написано, что он готов читать по русски :-)) Конечно
a.html.ru являет собой ссылку и это не смертельно, но как-то некрасиво -- мало
кто у нас по Web'у ходит с настроенным AcceptLanguage ...
RP> При этом, пока не установится MultiLang, можно для упрощения кода
RP> договориться ставить сначала значение соурса, затем язык - .win.ru.html
А вот это уже нехорошо. Ибо противоречит тому, что делается сейчас в Apache
(не Russian). Либо править и там и там, либо оставить как есть...
RP> Alex, будет человеком, зделай это сам, мне же еще разбираться с кодом
RP> придеться, можешь потом в описании настроек написать:"...на мой взгляд,
RP> ерунда, добавлена по просьбе назойливого чела" (что-то подобное я у тебя
RP> уже видел :).
Угу. А потом мне придется эту фичу вырезать :-(( А сделать все корректно -- это
сильно много гемора: нужно координировать изменения в mod_charset, mod_mime и
mod_negotiation ... Хотя если кто-нибудь это сделает, то это может быть
полезно ...
RP> Да, еще добавь в конфиги эту строчку:
RP> "CharsetAgent iso-8859-5 (X11; I; AIX; (X11; I; SunOS"
RP> Насчет X'ов ничего не могу сказать, меня попросили их добавить, а про
RP> AIX - его родной кодировкой действительно является iso-5.
Про AIX -- могу подтвердить. Это #$%^$^ из IBM действительно руссфицировали его
в iso-8859-5, а вот насчет X'ов... Думаю, что не стоит -- X'ы далеко не только
в AIX'е используются. На всех известных мне SunOS'ах используется koi8-r ...
RP> -----------------------------------
RP> А сейчас будет надавание по рогам (жены тут ни при чем) недружелюбным
RP> читателям моих писем.
Я, возможно, выражаюсь несколько резко, но я говорю только про то, что знаю :-)
Как и в данном случае. Это насчет недружелюбности :-)) А насчет надавать по
рогам. Как говорится "Учите матчасть! Ох и бъют же, когда не знаешь" :-))
RP> Khimenko Victor, ты не прав!!!
Если бы ...
RP> То что ты до этого рассказывал про mod_mime, есть ни что иное как "BRED
RP> OF VERY SIF KEIBL" (извиняюсь, взаимно)!
К сожалению это -- ровно то, как mod_mime работает :-)) Или тебя чем-нибудь
в код ткнуть, чтобы ты поверил ? Я Alex'а в свое время пихал туда (ох и давно
это было, однако! Сейчас посмотрел: в январе 1997 года -- полтора года назад!
Как время летит, однако :-)), теперь, похоже, тебя придется туда же окунуть...
Мне этот подход кажется разумным (и уж по крайней мере согласованным, что,
быть может, даже важнее :-)... А если для тебя это "BRED OF VERY SIF KEIBL" ...
Что ж -- исходники перед тобой... Только не нужно ЭТО потом другим навязывать !
RP> Расширение вообще существует только одно, даже для Unix'а.
Зря ты так. В Unix'е вообще расширений столько, сколько программа захочет их
увидеть :-)) Нет там такого понятия на уровне OS. И слава богу...
BP> То, что я до этого про расширение, есть ни что иное как моя вольность в
RP> формулировках (может,это и ввело тебя в заблуждение?).
Может быть.
RP> Так что, в имени файла index.win.ru.html есть только расширение .html.
Нет. Неправда ваша, тетенька :-)) У этого файла два расширения с точки зрения
стандартного Apache'а и три (при правильных настройках :-) -- с точки зрения
Russian Apache :-))
RP> Остальные "расширения" существуют только для надстройки RusApache.
Дык я тебя носом тычу уже в котором письме подряд. $%$%&%%$#$% Нет, нет, и НЕТ.
Расширения в Apache появились задолго до использования их в Russian Apache !
Они используются в mod_mime и mod_negotiation ...
RP> Иначе как бы выглядел заголовок посылаемого face.bmp.zip?
RP> application/zip-bmp? :)
Хочешь посмеяться ? Посмотри на заголовок ответа на запрос файла index.gz.html:
-- cut --
HTTP/1.0 200 OK
Date: Fri, 04 Sep 1998 03:08:41 GMT
Server: Apache/1.3.1 (Unix) mod_perl/1.15 PHP/3.0.3 mod_ssl/2.0.6 SSLeay/0.9.0b rus/PL26.1
Last-Modified: Fri, 04 Sep 1998 03:08:21 GMT
ETag: "2805d-0-35ef59a5-koi8-r"
Accept-Ranges: bytes
Content-Length: 0
Content-Type: text/html; charset=koi8-r
Content-Encoding: x-gzip
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Vary: accept-charset, user-agent
X-Cache: MISS from proxy.sch57.msk.ru
-- cut --
и сравни с заголовком ответа на запрос файла index.html :
-- cut --
HTTP/1.0 200 OK
Date: Fri, 04 Sep 1998 03:09:40 GMT
Server: Apache/1.3.1 (Unix) mod_perl/1.15 PHP/3.0.3 mod_ssl/2.0.6 SSLeay/0.9.0b
rus/PL26.1
Last-Modified: Fri, 04 Sep 1998 03:09:29 GMT
ETag: "28171-0-35ef59e9-koi8-r"
Accept-Ranges: bytes
Content-Length: 0
Content-Type: text/html; charset=koi8-r
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Vary: accept-charset, user-agent
X-Cache: MISS from proxy.sch57.msk.ru
-- cut --
Есть разница, нет ? Если нет, то я обращаю твое внимание на строку
-- cut --
Content-Encoding: x-gzip
-- cut --
И предлагаю объяснить -- откуда она взялась если у файла может быть только
одно расширение ? Почему у index.html.gz и index.gz все совпадает -- это совсем
другая история... Хотя (если сам не догадаешся :-) могу и это объяснить...
RP> Нет, только application/zip, что дальше, это mod_mime до лампочки.
Прошу тебя. Почитай доку. Проведи эксперимент. Посмотри код, в конце концов.
И убедись. Дааалеко не до лампочки. Не надо впредь выдавать желаемое за
действительное, ладно ? И перед тем, как махать кувалдой в стеклянном доме
желательно сначала подумать -- я чем это все может кончится...
P.S. Кстати обработка CharsetByExtension была приведена в январе 1997 года в
соответствие с mod_mime Alex'ом по моей просьбе. Так что подход "...на мой
взгляд, ерунда, добавлена по просьбе назойливого чела" уже не срабатывает :-))
Ибо такой подход правомерен только тогда, когда кому-то хочется, а остальным
наплевать... Мне -- НЕ наплевать...
"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.