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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        

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

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

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

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

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

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

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

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

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

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

    Interesting Posts

    Как принудительно загрузить PDF-файл автоматически?

    Конвейер ресурсов Rails 3.1: как загрузить скрипты, специфичные для controllerа?

    В любом случае, если Excel 2010 обрабатывает цитируемое значение «08540» как текст без номера при открытии CSV

    Синтаксис JSON позволяет дублировать ключи в объекте?

    Как связать SID старого пользователя с новым пользователем, чтобы оставаться владельцем файла NTFS и разрешениями после новой переустановки Windows?

    7zip: как извлечь в вывод std?

    вычисление расстояний с использованием акселерометра

    Есть ли способ установить Internet Explorer 9 на Windows

    Разница между `% in%` и `==`

    Пример нелинейного, неагрессивного и недетерминированного CFL?

    Эквивалент define-fun в Z3 API

    Как отключить предупреждение о нехватке дискового пространства на одном диске в Windows 8?

    Выход Google Maps = kml сломан?

    Все версии Windows нечувствительны к регистру?

    Как я могу имитировать переменную массива в MySQL?

    Давайте будем гением компьютера.