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] Последний раз об CharsetByExtension Alex'у и All



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 ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ 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.