
В ASP.NET HTTP хендлер это процесс, который запускается для обработки запроса к Web приложению. Хендлеры не имеют пользовательского интерфейса, а лишь обрабатывают запрос и возвращают результат в нужном формате. Самым типичным примером такого хендлера является хендлер, обрабатывающий .aspx страницы. Вы можете создавать свои собственные хендлеры в форме generic хендлера, или кастомного HTTP хендлера. Чтобы выбрать тот или иной способ, нужно понять в чем между ними отличие.
Generic handler
В соответствии с MSDN, generic хендлер это хендлер по умолчанию, который имеет директиву @webhandler и расширение .ashx. Создаете вы такой хендлер путем создания .ashx файла. Собственно говоря, в ASP.NET есть стандартный хендлер, который обрабатывет .ashx страницы и больше ничего конфигурировать вам не надо.
Generic хендлер можно, например, использовать для создания миниатюр изображений, когда все запросы будут посылаться .ashx файлу, передавая также размеры миниатюры, а он динамически будет формировать графические файлы заданных размеров.
Пользовательский HTTP хендлер
Такой хендлер вы создаете путем создания класса, который реализует интерфейс IHttpHandler (или IHttpAsyncHandler). В отличие от Generic хендлера, такой HTTP хендлер должен быть сконфигурирован в файле web.config соответственно расширениям файлов которые он будет обрабатывать.
Примером использования такого хендлера может быть формирование RSS лент, когда в файле web.config вы указыаете класс который будет обрабатываеть запросы к .rss файлам, и в этом классе прописываете логику динамического формирования RSS ленты.
Подробнее про HTTP хендлеры а также про HTTP модули можете почитать тут: http://msdn.microsoft.com/ru-ru/library/bb398986.aspx