In this blog we will see what are http handlers and modules.
And in which condition which one is suitable. For that first we need to
understand when user request application resource to web server, what happened?
The user requests for a resource on web server. The web server examines the
file name extension of the requested file, and determines which ISAPI extension
should handle the request. Then the request is passed to the appropriate ISAPI
extension. For example when an .aspx page is requested it is passed to ASP.Net
page handler. Then Application domain is created and after that different
ASP.Net objects like Httpcontext, HttpRequest, HttpResponse are created. Then
instance of HttpApplication is created and also instance of any configured
modules. One can register different events of HttpApplication class like
BeginRequest, AuthenticateRequest, AuthorizeRequest, ProcessRequest etc.
HTTP Handler
HTTP Handler is the process which runs in response to a HTTP
request. So whenever user requests a file it is processed by the handler based
on the extension. So, custom http handlers are created when you need to special
handling based on the file name extension. Let's consider an example to create
RSS for a site. So, create a handler that generates RSS-formatted XML. Now bind
the .rss extension to the custom handler.
HTTP Modules
HTTP Modules are plugged into the life cycle of a request.
So when a request is processed it is passed through all the modules in the
pipeline of the request. So generally http modules are used for:
Security: For
authenticating a request before the request is handled.
Statistics and Logging:
Since modules are called for every request they can be used for gathering
statistics and for logging information.
Custom header: Since response can be modified, one can add
custom header information to the response.