Подтвердить что ты не робот

HTTP-обработчик против HTTP-модуля

Может кто-нибудь объяснить менее чем в 2 предложениях разницу между обоими? Да, я знаю, что Google может предоставить сотни ответов, но не один из двух явных предложений:)

4b9b3361

Ответ 1

HttpHandler - это то, куда направляется поезд запроса. HttpModule - это станция на этом пути.

Ответ 2

Два предложения:

HttpModule будет выполняться для каждого запроса в вашем приложении независимо от расширения и обычно используется для таких вещей, как безопасность, статистика, ведение журнала и т.д.

HttpHandler обычно ассоциируется с определенным расширением и используется для таких вещей, как RSS-каналы, генерация или модификация динамического изображения и т.п.

Немного больше объяснений, если это не совсем понятно:

Я думаю о них - модули "подключаются" к конвейеру запроса, тогда как обработчики "обрабатывают" определенное расширение файла. Итак, если у вас есть сайт с LoggingModule и PdfHandler, оба будут выполняться для запроса http://example.com/sample.pdf, а модуль регистрации один будет выполняться для запроса http://example.com/page.aspx.

Там довольно четкая статья о различиях в MSDN: HTTP-обработчики и HTTP-модули Обзор

Ответ 3

Обработчик HTTP - это процесс, который выполняется в ответ на запрос, сделанный в веб-приложении ASP.NET. HTTP-модули позволяют проверять входящие и исходящие запросы и предпринимать действия на основе запроса.

Ответ 4

Основной и общей целью HttpHandler и HttpModule является введение логики предварительной обработки до того, как запрос ASP.NET достигнет сервера IIS.

ASP.NET предоставляет два способа ввода логики в конвейер запросов;

  • Обработчики Http: Http-обработчик помогает нам внедрить логику предварительной обработки на основе расширения запрошенного имени файла. ASP.NET использует обработчики HTTP для реализации множества своих собственных функций. Например, ASP.NET использует обработчики для обработки файлов .aspx,.asmx и trace.axd.

Пример: RSS-каналы. Чтобы создать канал RSS для веб-сайта, вы можете создать обработчик, который испускает XML-формат в формате RSS. Поэтому, когда пользователи отправляют запрос на ваш сайт, который заканчивается на .rss, ASP.NET вызывает обработчик для обработки запроса.

В создании обработчика задействованы три шага 1. Внедрить интерфейс IHttpHandler. 2. Обработчик регистра в файле web.config или machine.config. 3. Сопоставьте расширение файла (*.arshad) с aspnet_isapi.dll в IIS.

Интерфейс IHttpHandler имеет метод ProcessRequest и свойство IsReusable, которое необходимо реализовать. ProcessRequest: в этом методе вы пишете код, который выводит результат для обработчика. IsResuable: это свойство указывает, можно ли повторно использовать этот обработчик или нет.

Вы можете зарегистрировать обработчик в файле web.config следующим образом

<httpHandlers>
   <add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>

Примечание: здесь мы обрабатываем любое имя файла с расширением arshad.

  1. Модули Http: HttpModule - это процессор, основанный на событиях, для ввода логики предварительной обработки до того, как запрос достигнет сервера IIS. ASP.NET использует HTTP-модуль для реализации множества собственных функций, таких как аутентификация и авторизация, управление сеансом и кэширование вывода и т.д.

Механизм ASP.NET испускает множество событий в качестве прохода запроса через конвейер запроса. Некоторые из этих событий: AuthenticateRequest, AuthorizeRequest, BeginRequest, EndRequest. Используя HttpModule, вы можете писать логику в этих событиях. Эта логика выполняется как огонь событий и до того, как запрос достигнет IIS.

В создании модулей есть два шага: 1. Внедрить интерфейс IHttpModule 2. Зарегистрируйте модуль в файле web.config или machine.config.

Пример: Безопасность. Используя HTTP-модуль, вы можете выполнить пользовательскую проверку подлинности или другие проверки безопасности до того, как запрос достигнет IIS.

Ответ 5

Хорошая статья о нем HttpModule-and-HttpHandlers

Ссылка: INFO: HTTP-модули ASP.NET и обзор HTTP-обработчиков

"Модули вызываются до и после выполнения обработчика. Модули позволяют разработчикам перехватывать, участвовать или изменять каждый отдельный запрос. Обработчики используются для обработки отдельных запросов конечных точек. Обработчики позволяют ASP.NET Framework обрабатывать отдельные URL-адреса HTTP или групп URL-адресов внутри приложения. В отличие от модулей для обработки запроса используется только один обработчик.

Ответ 6

Обработчик HTTP - это то, где собственно компиляция выполняется на основе настройки. например, если расширение страницы .aspx, то оно будет скомпилировано через system.web.Ui.Pagahandlefactory. после компиляции выполняется по запросу HTTP-запроса, будет идти через HTTP-модуль и IIS.

Ответ 7

HttpHandler отвечает за обработку HTTP-запроса, в то время как HttpModule отвечает на события жизненного цикла приложения.