Servidor HTTP Apache Versão 2.4

Este documento descreve o uso de filtros no Apache.
| Módulos Relacionados | Diretrizes Relacionadas |
|---|---|
A Cadeia de Filtros está disponível no Apache 2.0 e versões posteriores, e permite que as aplicações processem dados de entrada e saída de maneira altamente flexível e configurável, independentemente de onde os dados vêm. Podemos pré-processar dados de entrada e pós-processar dados de saída, conforme necessário. Isso é basicamente independente das fases tradicionais de processamento de requisições.
Alguns exemplos de filtragem na distribuição padrão do Apache são:
mod_include, implementa inclusões do lado do servidor.mod_ssl, implementa criptografia SSL (https).mod_deflate, implementa compressão/descompressão em tempo real.mod_charset_lite, transcodifica entre diferentes conjuntos de caracteres.mod_ext_filter, executa um programa externo como filtro.O Apache também usa vários filtros internamente para executar funções como fragmentação e manipulação de intervalos de bytes.
Uma gama mais ampla de aplicações é implementada por módulos de filtro de terceiros. Alguns exemplos são:
O módulo mod_filter, incluído no Apache 2.1 e versões posteriores,
permite que a cadeia de filtros seja configurada dinamicamente no momento da execução.
Assim, por exemplo, você pode configurar um proxy para reescrever
HTML com um filtro HTML e imagens JPEG com um filtro completamente
separado, mesmo que o proxy não tenha nenhuma informação prévia
sobre o que o servidor de origem enviará. Isso funciona usando um
envoltório de filtros que direciona a requisição para diferentes provedores de acordo com
o conteúdo real no momento da execução. Qualquer filtro pode ser
inserido diretamente na cadeia e executado incondicionalmente ou
usado como um provedor e inserido dinamicamente. Por exemplo,
Os filtros podem ser usados para processar conteúdo originado do cliente, além
de processar conteúdo originado no servidor usando o módulo
mod_reflector.
O módulo mod_reflector aceita requisições POST de clientes e reflete
o conteúdo do corpo da requisição POST recebido de volta na resposta,
passando pela pilha de filtros de saída no caminho de volta para o cliente.
Essa técnica pode ser usada como uma alternativa a um serviço web executado dentro
de uma pilha de servidor de aplicativos, onde um filtro de saída fornece a transformação
necessária no corpo da requisição. Por exemplo, o módulo mod_deflate
pode ser usado para fornecer um serviço de compressão geral, ou um filtro de
transformação de imagem pode ser transformado em um serviço de transformação de imagem.
Existem dois métodos de uso de filtros: Simples e Dinâmico. Em geral, deve ser usada apenas um ou outro; misturá-los pode ter consequências inesperadas (embora a filtragem de entrada simples possa ser misturada livremente com a filtragem de saída simples ou dinâmica).
O Método Simples é a única maneira de configurar filtros de entrada e é
suficiente para filtros de saída onde é necessária uma cadeia de filtros estática.
As diretivas relevantes são
SetInputFilter,
SetOutputFilter,
AddInputFilter,
AddOutputFilter,
RemoveInputFilter e
RemoveOutputFilter.
O Método Dinâmico permite a configuração estática e flexível/dinâmica
dos filtros de saída, conforme discutido na página mod_filter.
As diretivas relevantes são
FilterChain,
FilterDeclare e
FilterProvider.
Uma diretiva adicional, AddOutputFilterByType também é suportada,
porem obsoleta. Um a configuração dinâmica em seu lugar.