Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 


 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




This product includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/). See Apache HTTP server LICENSE
Copyright (C) 1995,1996 Dm.Kryukov, Stack Ltd. Changes (C) 1997 Alex Tutubalin, Samovar Internet Consulting, LLC.


Содержание:

Краткий обзор сервера Apache

На сегодняшний день в русскоязычном (как минимум) Internet-пространстве существует "проблема многих кодировок". Существует по меньшей мере пять распространенных кодировок (кодовых таблиц) кириллицы и "информационные ресурсы" должны доставляться потребителям в доступной для них форме т.е. в той кодировке, которую поддерживает программное обеспечение пользователя. Как следствие, на русскоязычном WWW-сервере должна быть (или крайне желательна) поддержка нескольких кодировок кириллицы (вопросы о единственно верной кодировке и о правильной стороне с которой нужно разбивать яйцо являются религиозными и не являются темой данного сервера). Желательно было сделать такую поддержку максимально прозрачной для пользователя и гибкой в настройке для Web-мастера.

Вариантов решения этой задачи существует уже довольно много и предлагаемые способ и программное обеспечение - не уникальны, хотя и завоевали некоторую популярность.

За основу данного программного продукта был взят популярный HTTP-сервер Apache, к которому была добавлена функциональность, необходимая для корректной поддержки нескольких кодировок кириллицы одновременно. К сожалению, эта функциональность не может быть обеспечена полностью независимым модулем, пришлось внести некоторые добавления в основной код Apache.

Последняя веpсия "Russian Apache" - Apache 1.2.1 rus/PL20.4. Последняя версия, основанная на Apache 1.1.x - Apache 1.1.3 rus/PL16, но версия на основе Apache 1.1.3 более не развивается и не поддерживается.

Перед установкой сервера рекомендуем тщательно изучить разделы Как это работает, Как настроить и Некоторые рекомендации.

Если вы используете "старую" версию Russian Apache, то рекомендуется сделать апгрейд как минимум на версию 1.1.3 rus/PL16 - в версиях PL14..PL16 было исправлено много нефатальных, но неприятных ошибок (см. список изменений и исправлений). Версии, сделанные на основе Apache 1.2.1 (текущая - PL20.4) также достаточно стабильны, но между версиями PL16 и PL18 полностью поменялись директивы, поэтому конфигурации и переконфигурация потребует некоторых усилий.

Особенностями сервера являются:

  1. Поддержка согласования кодировок клиента и сервера как при выдаче документов пользователю, так и при обработке пользовательского ввода (при вводе поддерживаются как GET, так и POST).
  2. Выдача правильных Content-type:...;charset=... в соответствии с этим согласованием.
  3. Выдача при необходимости заголовка Expires: для proxy серверов.
  4. Выдача корректных заголовков Vary: и ETag, в результате возможно корректное кэширование документов (если proxy-cache совместим с HTTP/1.1).

Версии сервера до PL16 включительно не поддерживают явным образом хранение документов на диске в нескольких кодировках (это может быть нужно в случае, когда разные разделы сервера редактируют разные люди, работающие на разных платформах). Соответствующая функциональность, позволяющая использовать разные "внутренние" (on-disk) кодировки для разных директорий появилась начиная с версии PL17b, начиная с версии PL19 - это уже достаточно стабильный программный продукт (Замечание. Версии PL12..PL16 совместимы по файлам конфигурации, версии PL17..текущая - тоже, но между PL16 и PL17 директивы конфигурации изменились)

В сервере реализовано совмещение нескольких методов согласования кодировок клиента и сервера (подробности - в разделе Как это работает, а именно:

  • Через заголовки клиента Accept-Charset: и/или Accept: text/x-cyrillic ... Если сервер знает о том charset, который запросил клиент, то эти заголовки имеют высший приоритет для сервера, вне зависимости от его настройки на native charset.
  • Через поиск в имени сервера названия одной из сконфигурировнных кодовых страниц (например: www-koi8-r.stack.serpukhov.su или www-windows-1251.stack.serpukhov.su)
  • Через поиск в префиксе запрошенного URI названия одной из сконфигурировнных кодовых страниц (например: http://www.stack.net/windows-1251/file.html)
  • Через явное указание соответствия "номер порта - кодировка".
  • Через конфигурацию кодовых страниц по умолчанию для различных типов клиентских программ в случае, когда сервер может опознать клиентскую программу (иногда среду, в которой работает клиентская программа).
  • Для разных (виртуальных) серверов и/или директорий - по отдельности. Т.е. для каждой директории или виртуального сервера (на другом hostname или номере порта) можно указать свой набор директив которые будут работато от этого узла дерева и "ниже" (пока их не отменят директивы на большем уровне детальности).

  • В случае принятия сообществом единой транспортной кодировки, необходимо будет оставить только ее в сервере, независимо от физического способа представления данных документов.

Некоторые особенности:

  • Администратор сервера сам определяет - в каких случаях должны использоваться разные кодовые страницы. Администратор сервера, также, может самостоятельно создавать таблицы перекодировки и подключать их к серверу для согласования кодовой страницы сервера с требуемой кодировкой клиента.
    Сервер корректно преобразует текстовые потоки от/к клиенту, включая последовательности типа %xx%yy%zz. В текущей версии полностью перекодируется также и Netscape file-upload, равно как и PUT. Эта проблема будет решена в последующих версиях.
  • Администратор сервера может указывать характерные признаки клиентской программы (User-agent: заголовок) и соответствующий данной клиентской программе charset по-умолчанию.
  • Администратор сервера может указать клиентские программы, которые неадекватно воспринимают MIME, для них такие заголовки сервером не будут выдаваться.
  • Администратор сервера может указать приоритет в выборе сервером charset между URL и User-agent.
  • Администратор сервера может определить реакцию сервера на некорректно запрошенный charset (т.е. выдавать ли запрошенный документ в таком случае в charset по-умолчанию)

[Next Page]



With any suggestions or questions please feel free to contact us