Almost everything we do in an HttpHandler, we can simply do
it in a normal .aspx page. Then why do we need HttpHandlers? First, the
HttpHandlers are more reusable and portable than the normal .aspx pages. Since
there are no visual elements in an HttpHandler, they can be easily placed into
their own assembly and reused from project to project. Second, HttpHandlers are
relatively less expensive than the PageHandler. For a page to be processed at
the server, it goes through a set of events (onInit, onLoad, etc.), viewstate
and postbacks or simply the complete Page Life
Cycle. When you really have nothing to do with the complete page life cycle
(like displaying images), HttpHandlers are useful, though the performance hit
is negligible.