HttpModule позволяет вам перехватить запрос (до того, как он будет обработан его обработчиком) и сгенерированный ответ.Он может изменить оба запроса / ответа, если это необходимо.Сеансы ASP.NET, профили, аутентификация и т. Д. Также реализованы в виде HttpModule - эти модули проверяют запрос и присоединяют к запросу необходимый контекст (например, состояние сеанса на основе файла cookie сеанса).Такой функционал трудно реализовать с помощью кода aspx.
HttpHandler отвечает за обработку запроса, т.е. за генерацию HTTP-ответа, что часто (но не всегда) означает генерацию некоторого html.Класс страницы (основа для aspx) - не что иное, как обработчик http (как и другие конечные точки, такие как asmx, ashx, axd).Необработанный обработчик (ashx) полезен, когда вам нужен абсолютный контроль над генерацией ответов - вместо этого можно было бы использовать aspx, но тогда он излишне включал бы все стандартные механизмы управления страницами (представление-состояние, пост-дата, дерево управления и т. Д.).