Descrição das novas funcionalidades do Apache 2.0
Esse documento descreve algumas das mudanças principais
entre as versões 1.3 e 2.0 do Servidor HTTP Apache.
- Threading Unix
- Em sistemas Unix com suporte a threads POSIX, o Apache pode
funcionar em modo híbrido multiprocesso e multithread. Não funciona
em todas configurações, mas melhora a escalabilidade em muitas.
- Novo Sistema de Compilação
- O sistema de compilação foi reescrito do zero para utilizar o
autoconf
e o libtool
, tornando a
configuração do sistema Apache mais similar a de outros
pacotes.
- Suporte Multi-protocolo
- O Apache possui agora uma infraestrutura feita para suportar
múltiplos protocolos. O módulo
mod_echo
é um
exemplo ilustrativo de sua utilização.
- Suporte Aperfeiçoado para Plataformas Não-Unix
- O Apache 2.0 está mais rápido e mais estável em plataformas
Não-Unix como BeOS, OS/2 e Windows. Com a introdução de módulos
multi-processamento (MPMs) específicos e a
Apache Portable Runtime (APR), essas plataformas estão implementando
as suas APIs nativas, evitando as camadas de emulação POSIX que se
mostravam lentas e defeituosas.
- Nova API Apache
- A API para módulos mudou significativamente na versão 2.0.
Muitos dos problemas de ordenamento/prioridade da versão
1.3 foram resolvidos. A versão 2.0 faz o ordenamento automático
"per-hook" para permitir mais flexibilidade. Novas chamadas foram
adicionadas para fornecer capacidades adicionais sem a necessidade
de se aplicar nenhum patch ao servidor Apache principal.
- Suporte IPv6
- Em sistemas onde o IPv6 é suportado pela biblioteca de base
Apache Portable Runtime, o Apache monitora por padrão
as interfaces IPv6. Em adição as diretrizes
Listen
, NameVirtualHost
e VirtualHost
, suportam correntes (strings) de
endereços numéricos do tipo IPv6. (ex. "Listen
[2001:db8::1]:8080
").
- Filtrando
- Os módulos do Apache agora são feito filtros que
agem na corrente do conteúdo na medida que este é entregue, tanto
na entrada quando na saída de dados do servidor. É possível então,
por exemplo, que o retorno de dados de scripts CGI sejam analisados
pelas diretrizes do "Server Side Include" usando o filtro
INCLUDES
do mod_include
. O módulo mod_ext_filter
, permite que programas externos trabalhem
como filtros do mesmo modo que aplicações CGI funcionam como
manipuladores.
- Respostas de Erro Multi-linguais
- Mensagens de erro para o navegador agora são fornecidas em
diversas línguas, usando documentos SSI. Podem ser personalizadas
pelo administrador que desejar definir seus próprios
padrões.
- Configuração Simplificada
- Muitas diretrizes confusas foram simplificadas. Entre elas,
Port
e BindAddress
não existem
mais; apenas a diretriz Listen
é usada para direcionar endereços IP; a diretriz ServerName
especifica o nome do servidor
e o número da porta apenas para redirecionamento e reconhecimento
de hospedeiros virtuais.
- Suporte Nativo ao Unicode do Windows NT
- O Apache 2.0 para Windows NT agora usa utf-8 para codificação
de todos os nomes de arquivos. A tradução para o sistema
base Unicode, torna possível o suporte multi-lingual para todas
as instalações da família NT, incluindo o Windows 2000 e Windows XP.
Esse suporte não se estende ao Windows 95, 98 ou ME, que
continuam usando o código de páginas da máquina local para o
acesso ao sistema de arquivos.
- Biblioteca de Expressões Regulares Atualizada
- O Apache 2.0 inclui a Biblioteca
de Expressões Regulares Compatíveis Perl (PCRE). Todas as
avaliações de expressões regulares usam a mais poderosa sintaxe
do Perl 5.
mod_ssl
- Novo módulo no Apache 2.0. Esse módulo é uma interface
para os protocolos de codificação SSL/TLS fornecidos pela
OpenSSL.
mod_dav
- Novo módulo no Apache 2.0. Este módulo implementa as
especificações de Autoria Distribuída e Versões (Distributed
Authoring and Versioning - DAV) para HTTP, para a publicação
e a manutenção de conteúdo da web.
mod_deflate
- Novo módulo no Apache 2.0. Esse módulo permite o suporte
a navegadores que solicitam que o conteúdo seja comprimido antes
da entrega, economizando banda da rede.
mod_auth_ldap
- Novo módulo no Apache 2.0.41. Este módulo permite que
bancos de dados LDAP sejam usados para armazenar credenciais
para Autenticação Básica HTTP. Um módulo que o acompanha
mod_ldap
, fornece a conciliação de conexões e armazenamento
de resultados.
mod_auth_digest
- Inclui suporte adicional para armazenamento de sessões
através de processos que usam memória compartilhada.
mod_charset_lite
- Novo módulo no Apache 2.0. Este modo experimental permite a
tradução de tabelas de caracteres ou re-codificação.
mod_file_cache
- Novo módulo no Apache 2.0. Esse módulo inclui a funcionalidade
do
mod_mmap_static
do Apache 1.3, além de disponibilizar
outras possibilidades de armazenamento.
mod_headers
- Este módulo está muito mais flexível no Apache 2.0. Pode
modificar pedidos de cabeçalhos usados pelo
mod_proxy
, e incondicionalmente pode ajustar cabeçalhos de respostas.
mod_proxy
- O módulo proxy foi totalmente reescrito para levar vantagem
da nova infraestrutura de filtro e implementar um proxy mais fiel e
de acordo com o padrão HTTP/1.1. Além disso, uma nova seção
de configuração
<Proxy>
fornece controles mais legíveis (e internamente
mais rápidos) para sites com proxies; configurações
sobrecarregadas <Directory "proxy:...">
, não
são suportadas. O módulo agora é dividido em suporte
de protocolos específicos incluindo proxy_connect
,
proxy_ftp
e proxy_http
.
mod_negotiation
- A nova diretriz
ForceLanguagePriority
pode ser usada para assegurar que
o cliente receba um único documento em todos os casos, ao invés de
respostas "NOT ACCEPTABLE" ou "MULTIPLE CHOICES". Novos algoritmos
de negociação e visões múltiplas (MultiViews) foram organizados para
obter resultados mais consistentes e uma nova forma de tipo de mapa
(map type) que podem incluir o conteúdo de documentos é fornecido.
mod_autoindex
- As listagens de diretórios automáticas podem ser
configuradas para usar tabelas HTML para formatações mais limpas
e permitir controles mais acurados de classificação, incluindo
ordenação por versão e filtro da lista de
diretórios através de caracteres-coringa.
mod_include
- Novas diretrizes permitem que as tags padrões start e
end para elementos SSI, possam ser alteradas e permitir que
as configurações de formatos de erro e hora sejam incluídos no
arquivo de configuração principal, ao invés de serem adicionadas
ao documento SSI. Resultados de análises de expressões regulares
e agrupamento (baseadas na sintaxe de expressões regulares do Perl)
podem ser obtidas usando as variáveis do módulo
mod_include
, de $0
a $9
.
mod_auth_dbm
- Agora suporta múltiplos tipos de banco de dados similares ao DBM,
usando a diretriz
AuthDBMType
.