Artigo do tipo Exemplos Práticos
Recursos especiais neste artigo:
Conteúdo sobre boas práticas
Autores: Giuvane Conti e Everton Coimbra de Araújo
Interfaces IHttpModule e IHttpHandler na prática
As interfaces IHttpHandler e IHttpModule são utilizadas em classes dentro de um sistema web para capturar requisições enviadas por um cliente (browser) a um servidor ASP.NET. Após capturadas, os dados destas requisições podem ser tratados da forma que o desenvolvedor achar correta e então responder as requisições ao cliente (browser).

Neste artigo será visto a estrutura destas interfaces, todos seus atributos, métodos e eventos e em quais situações elas podem ser aplicadas e como aplicá-las.


Em que situação o tema é útil

As interfaces HttpModule e HttpHandler possuem características de controle de requisições dentro de um sistema web, desta forma podem ser utilizadas em todas situações onde é necessário verificar, filtrar ou até mesmo manipular as ações realizadas pelo usuário.

Quando o ASP.NET recebe uma requisição do tipo HTTP, ele gera uma resposta apropriada para esta requisição. O ASP.NET tem a capacidade de processar diferentes tipos de requisições, com base na extensão da requisição, por exemplo, requisições feitas por .aspx, .ascx, ou .txt, dentre outras. Quando o ASP.NET recebe uma requisição, ele checa a extensão e realiza alguns passos pré-definidos para responder a este pedido. É neste momento que entra em cena o HttpHandler e o HttpModule.

O desenvolvedor ASP.NET pode adicionar novas funcionalidades ou tratar de forma diferentes as requisições feitas pelo usuário. Desta forma, terá mais controle ao gerar as respostas. Por exemplo, o desenvolvedor pode decidir como uma requisição por arquivos .jpg ou .gif será tratada, bastando, para isso, utilizar a interface IHttpHandler na classe onde será realizado o tratamento.

Outra situação pode ser o caso do desenvolvedor querer realizar algumas tarefas em todas as requisições realizadas. Por exemplo, toda requisição realizada pelo usuário terá que ser validada, e então, só após a validação haverá o retorno. Neste caso basta utilizar a interface IHttpModule na classe onde será realizado este tratamento.

Com isso, fica claro afirmar que HttpHandlers são responsáveis por requisições específicas baseadas em extensões, e HttpModule é responsável por uma tarefa mais genérica, pois ele trata todas as requisições realizadas ao ASP.NET. Na Figura 1 é possível ver o funcionamento deste conceito.

...

Quer ler esse conteúdo completo? Tenha acesso completo