Обзор новых возможностей в Apache 2.0
  Этот документ описывает основные различия между версиями 1.3 и 2.0 HTTP сервера Apache
 

 
    
    
      - Многопоточность в UNIX
 
      - На UNIX системах, которые поддерживают потоки (нити) стандарта POSIX,
      Apache теперь может выполняться в гибридном многопроцессово-многопоточном режиме.
      Это способствует расширяемости
      системы для многих, но не для всех конфигураций.
 
      - Новая система сборки
 
      - Система сборки была полностью изменена, и теперь основывается на 
autoconf и libtool.
      Это делает процесс конфигурирования Apache более похожим на аналогичный процесс в других программных
      продуктах. 
      - Поддержка различных протоколов
 
      - Apache теперь имеет специальную инфраструктуру,
      способную обслуживать различные протоколы.
      Модуль 
mod_echo был написан в качестве
      примера этому. 
      - Улучшенная поддержка отличных от UNIX
      платформ
 
      - Apache 2.0 стал работать быстрее и надежнее
      на отличных от UNIX платформах, таких как: BeOS,
      OS/2 и Windows. С введением новых специфичных
      для каждой платформы мульти-процессных модулей (MPMs) и
      библиотеки Apache Portable Runtime (APR), эти платформы
      теперь поддерживаются с помощью их собственных API, что
      позволяется избежать введения зачастую неправильно работающих
      из-за большого количества ошибок POSIX - эмулирующих слоев.
 
      - Новый API для Apache
 
      - API для написания модулей значительно изменился в версии 2.0.
      Многие из проблем версии 1.3, связанные с порядком следования
      модулей и их приоритетами, должны исчезнуть. В версии 2.0
      большая часть данной работы теперь делается сервером автоматически,
      а порядок следования модулей определяется отдельно в каждом
      хуке (hook), что делает процесс более гибким и конфигурируемым.
      Также были добавлены новые функции, которые
      предоставляют дополнительные возможности использования модулей,
      избавляя от необходимости внесения каких-либо изменений в ядро
      сервера.
 
      - Поддержка протокола IPv6
 
      - В системах, где протокол IPv6 поддерживается
      нижележащей библиотекой Apache Portable Runtime, Apache
      по умолчанию получает возможность слушать IPv6 сокеты.
      В добавок к этому директивы 
Listen, NameVirtualHost и VirtualHost могут работать с адресными строками,
      заданными в формате IPv6 (т.е. например "Listen [2001:db8::1]:8080"). 
      - Использование фильтров
 
      - Модули Apache теперь можно написать так, что
      они будут исполнять роль фильтров,
      обрабатывающих потоки данных, которые приходят или уходят
      из сервера. Это позволяет, к примеру, данным, являющимся
      результатом работы CGI-скрипта, быть обработанными SSI
      фильтром 
INCLUDES, предоставляемым модулем
      mod_include. Модуль mod_ext_filter
      позволяет внешним программам исполнять роль фильтров точно таким же образом,
      каким CGI программы действуют в качестве обработчиков (handlers). 
      - Сообщения об ошибках на разных языках
 
      - Сообщения об ошибках, посылаемые браузеру, теперь
      представлены на нескольких языках и используют SSI
      технологию. Они могут быть легко отредактированы
      администратором под свои нужды.
 
      - Упрощенная конфигурация
 
      - Многие запутанные директивы были упрощены. Наиболее
      сбивающие с толку 
Port и BindAddress были убраны;
      для привязки к IP адресу используется только директива
      Listen; директива
      ServerName определяет имя сервера и номер порта
      теперь только для перенаправлений и работы с виртуальными хостами. 
      - Поддержка юникода Windows NT
 
      - Apache 2.0 на Windows NT теперь использует кодировку utf-8
      для работы с именами файлов. Это позволяет использовать
      нижележащую файловую систему, работающую в формате Unicode,
      что предоставляет поддержку сервером многоязычности для всех NT-
      систем, включая Windows 2000 и Windows XP.
      Это не распространяется на такие операционные системы, как
      Windows 95, 98 или ME, которые для обращения к файловой системе
      используют локальные кодовые страницы.
 
      - Новая библиотека для работы с регулярными выражениями
 
      - В состав Apache 2.0 была включена 
      библиотека для работы с Perl-совместимыми регулярными выраженями (PCRE).
      Все регулярные выражения теперь используют более мощный синтаксис Perl 5.
 
    
   
 
    
    
      mod_ssl 
      - Новый модуль в Apache 2.0. Этот модуль является интерфейсом
      к протоколам шифрования SSL/TLS, предоставляемыми OpenSSL.
 
      mod_dav 
      - Новый модуль в Apache 2.0. Этот модуль внедряет спецификацию
      Distributed Authoring and Versioning (DAV), позволяющую управлять
      содержимым сайта посредством расширенного протокола HTTP.
 
      mod_deflate 
      - Новый модуль в Apache 2.0. Этот модуль позволяет браузерам, поддерживающим
      данную технологию, запрашивать данные в сжатом виде, что сокращает нагрузку на
      сеть.
 
      mod_auth_ldap 
      - Новый модуль в Apache 2.0.41. Этот модуль позволяет использовать базу данных LDAP
      для хранения имен и паролей пользователей, необходимых при аутентификации по методу
      Basic. Сопутствующий ему модуль 
mod_ldap обеспечивает возможность
      создания очередей подключений (connection pools) и кэширования результатов. 
      mod_auth_digest 
      - Включает дополнительную поддержку кэширования сессий
      процессами, благодаря использованию общей области памяти (разделению
      памяти).
 
      mod_charset_lite 
      - Новый модуль в Apache 2.0. Этот экспериментальный модуль позволяет
      осуществлять перевод из одного набора символов (character set) в другой и из одной
      кодировки в другую.
 
      mod_file_cache 
      - Новый модуль в Apache 2.0. Этот модуль включает в себя
      функциональность модуля 
mod_mmap_static из Apache 1.3
      плюс новые возможности кэширования. 
      mod_headers 
      - Этот модуль стал более гибким в Apache 2.0. Он позволяет
      модифицировать заголовки запросов, используемых модулем
      
mod_proxy, и может включать в ответ сервера заголовки в
      зависимости от различных условий. 
      mod_proxy 
      - Прокси модуль был полностью переписан, и теперь включает
      в себя преимущества новой фильтровой инфраструктуры и использует
      более надежную, совместимую с HTTP/1.1 прокси-технологию. В добавок
      к этому была введена новая секция 
<Proxy>, которую можно использовать в конфигурационных файлах, что
      обеспечивает более удобный (и более быстрый для ядра сервера) контроль над сайтами,
      использующими proxy-технологию. Перегруженная конфигурация <Directory "proxy:...">
      более не поддерживается. Модуль теперь разделен на отдельные специфичные модули,
      поддерживающие различные протоколы. Эти модули включают в себя proxy_connect, proxy_ftp
      и proxy_http. 
      mod_negotiation 
      - Добавлена новая директива 
ForceLanguagePriority, для того чтобы вместо ответов сервера
      NOT ACCEPTABLE или MULTIPLE CHOICES всегда предоставлять пользователю
      определенный документ. В дополнение к этому алгоритмы
      негоциации (negotiation) и MultiViews были вычищены и исправлены, для
      обеспечения более последовательного результата, а также появилась возможность
      включения непосредственно содержимого документов в карту типов (type map). 
      mod_autoindex 
      - Листинги автоиндексируемых каталогов теперь могут выдаваться в виде
      HTML-таблиц. Появилась возможность более гибкой сортировки, включая сортировку по версиям и
      сортировку с использованием шаблонных символов (wildcard).
 
      mod_include 
      - Введены новые директивы, которые позволяют изменить начальный и конечный
      теги SSI элементов, задаваемые по умолчанию, а также предоставляют возможность
      конфигурирования формата сообщений об ошибках и времени непосредственно
      в главном конфигурационном файле, а не в SSI документе. Результаты
      обработки регулярных выражений (теперь основывающихся на синтаксисе
      регулярных выражений языка Perl) могут быть получены при помощи переменных
      
$0 .. $9 модуля mod_include. 
      mod_auth_dbm 
      - Теперь поддерживает многочисленные типы DBM-подобных баз данных посредством
      директивы 
AuthDBMType.