На 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. Этот модуль внедряет спецификацию
Distributed Authoring and Versioning (DAV), позволяющую управлять
содержимым сайта посредством расширенного протокола HTTP.
Новый модуль в Apache 2.0. Этот модуль позволяет браузерам, поддерживающим
данную технологию, запрашивать данные в сжатом виде, что сокращает нагрузку на
сеть.
Новый модуль в Apache 2.0.41. Этот модуль позволяет использовать базу данных LDAP
для хранения имен и паролей пользователей, необходимых при аутентификации по методу
Basic. Сопутствующий ему модуль mod_ldap обеспечивает возможность
создания очередей подключений (connection pools) и кэширования результатов.
Новый модуль в Apache 2.0. Этот экспериментальный модуль позволяет
осуществлять перевод из одного набора символов (character set) в другой и из одной
кодировки в другую.
Этот модуль стал более гибким в Apache 2.0. Он позволяет
модифицировать заголовки запросов, используемых модулем
mod_proxy, и может включать в ответ сервера заголовки в
зависимости от различных условий.
Прокси модуль был полностью переписан, и теперь включает
в себя преимущества новой фильтровой инфраструктуры и использует
более надежную, совместимую с HTTP/1.1 прокси-технологию. В добавок
к этому была введена новая секция <Proxy>, которую можно использовать в конфигурационных файлах, что
обеспечивает более удобный (и более быстрый для ядра сервера) контроль над сайтами,
использующими proxy-технологию. Перегруженная конфигурация <Directory "proxy:...">
более не поддерживается. Модуль теперь разделен на отдельные специфичные модули,
поддерживающие различные протоколы. Эти модули включают в себя proxy_connect, proxy_ftp
и proxy_http.
Добавлена новая директива ForceLanguagePriority, для того чтобы вместо ответов сервера
NOT ACCEPTABLE или MULTIPLE CHOICES всегда предоставлять пользователю
определенный документ. В дополнение к этому алгоритмы
негоциации (negotiation) и MultiViews были вычищены и исправлены, для
обеспечения более последовательного результата, а также появилась возможность
включения непосредственно содержимого документов в карту типов (type map).
Листинги автоиндексируемых каталогов теперь могут выдаваться в виде
HTML-таблиц. Появилась возможность более гибкой сортировки, включая сортировку по версиям и
сортировку с использованием шаблонных символов (wildcard).
Введены новые директивы, которые позволяют изменить начальный и конечный
теги SSI элементов, задаваемые по умолчанию, а также предоставляют возможность
конфигурирования формата сообщений об ошибках и времени непосредственно
в главном конфигурационном файле, а не в SSI документе. Результаты
обработки регулярных выражений (теперь основывающихся на синтаксисе
регулярных выражений языка Perl) могут быть получены при помощи переменных
$0 .. $9 модуля mod_include.