Когда использовать HttpHandlers и HttpModules? - PullRequest
9 голосов
/ 23 декабря 2010

Когда именно использовать HttpHandlers и HttpModules?

Не могу ли я написать этот код в коде страниц ASPX позади?

1 Ответ

23 голосов
/ 23 декабря 2010

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

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

...