Что такое HttpHandler в ASP.NET

Что такое HttpHandler в ASP.NET? Почему и как это используется?

6 ответов

Решение

Проще говоря, ASP.NET HttpHandler - это класс, который реализует System.Web.IHttpHandler интерфейс.

ASP.NET HTTPHandlers отвечают за перехват запросов, направленных на ваш сервер веб-приложений ASP.NET. Они запускаются как процессы в ответ на запрос к сайту ASP.NET. Самым распространенным обработчиком является обработчик страниц ASP.NET, который обрабатывает файлы ASPX. Когда пользователи запрашивают файл.aspx, запрос обрабатывается страницей через обработчик страницы.

ASP.NET предлагает несколько обработчиков HTTP по умолчанию:

  • Обработчик страниц (.aspx): обрабатывает веб-страницы
  • User Control Handler (.ascx): обрабатывает веб-страницы управления пользователями
  • Обработчик веб-службы (.asmx): обрабатывает страницы веб-службы
  • Trace Handler (trace.axd): обрабатывает функциональность трассировки

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

  • доставка динамически создаваемых изображений (например, диаграмм) или изображений с измененным размером.
  • RSS-каналы, которые испускают форматированный в формате XML XML

Вы реализуете IHttpHandler интерфейс для создания синхронного обработчика и IHttpAsyncHandler интерфейс для создания асинхронного обработчика. Интерфейсы требуют от вас реализации ProcessRequest метод и IsReusable имущество.

ProcessRequest метод обрабатывает фактическую обработку запросов, в то время как логическое IsReusable Свойство указывает, может ли ваш обработчик объединяться для повторного использования (для повышения производительности) или требуется новый обработчик для каждого запроса.

HttpHandler (или же IHttpHandler) в основном все, что отвечает за содержание контента. Страница ASP.NET (aspx) является типом обработчика.

Вы можете написать свой собственный, например, для обслуживания изображений и т. Д. Из базы данных, а не с самого веб-сервера, или для написания простого сервиса POX (а не SOAP/WCF/ и т. Д.)

Пример HttpHandler,

HTTP обработчик в ASP.NET 2.0

Обработчик отвечает за выполнение запросов из браузера. Запросы, которыми управляет браузер, обрабатываются либо по расширению файла, либо путем непосредственного вызова обработчика. Низкоуровневым API запросов и ответов для обслуживания входящих запросов Http являются обработчики Http в Asp.Net. Все обработчики реализуют интерфейс IHttpHandler, который находится в пространстве имен System.Web. Обработчики в некоторой степени аналогичны расширениям ISAPI.

Вы реализуете интерфейс IHttpHandler для создания синхронного обработчика, а интерфейс IHttpAsyncHandler - для создания асинхронного обработчика. Интерфейсы требуют, чтобы вы реализовали метод ProcessRequest и свойство IsReusable. Метод ProcessRequest обрабатывает фактическую обработку запросов, в то время как логическое свойство IsReusable указывает, может ли ваш обработчик объединяться в пул для повторного использования для повышения производительности или требуется новый обработчик для каждого запроса.

Расширение файла.ashx зарезервировано для пользовательских обработчиков. Если вы создадите пользовательский обработчик с расширением имени файла.ashx, он будет автоматически зарегистрирован в IIS и ASP.NET. Если вы решите использовать альтернативное расширение файла, вам придется зарегистрировать расширение в IIS и ASP.NET. Преимущество использования расширения, отличного от.ashx, заключается в том, что вы можете назначить несколько расширений файлов одному обработчику.

Настройка HTTP-обработчиков

Обработчик раздела конфигурации отвечает за сопоставление входящих URL-адресов с классом IHttpHandler или IHttpHandlerFactory. Он может быть объявлен на уровне компьютера, сайта или приложения. Подкаталоги наследуют эти настройки. Администраторы используют директиву tag для настройки раздела. Директивы интерпретируются и обрабатываются в последовательном порядке сверху вниз. Используйте следующий синтаксис для обработчика раздела:

Создание обработчиков HTTP

Чтобы создать обработчик HTTP, вы должны реализовать интерфейс IHttpHandler. Интерфейс IHttpHandler имеет один метод и одно свойство со следующими сигнатурами: void ProcessRequest(HttpContext); bool IsReusable {get;}

HTTP-обработчик ASP.NET - это процесс (часто называемый "конечной точкой"), который выполняется в ответ на запрос веб-приложения ASP.NET. Самым распространенным обработчиком является обработчик страниц ASP.NET, который обрабатывает файлы ASPX. Когда пользователи запрашивают файл.aspx, запрос обрабатывается страницей через обработчик страницы. Вы можете создавать свои собственные обработчики HTTP, которые отображают пользовательский вывод в браузер.

Любой класс, который реализует System.Web.IHttpHandler Интерфейс становится HttpHandler, И этот класс запускается как процессы в ответ на запрос к сайту ASP.NET.

Самым распространенным обработчиком является обработчик страниц ASP.NET, который обрабатывает файлы ASPX. Когда пользователи запрашивают файл.aspx, запрос обрабатывается страницей через обработчик страницы (класс, реализующий System.Web.IHttpHandler Интерфейс).

Вы можете создавать свои собственные пользовательские обработчики HTTP, которые отображают пользовательский вывод в браузер.

Некоторые обработчики ASP.NET по умолчанию:

  1. Обработчик страниц (.aspx) - обрабатывает веб-страницы
  2. User Control Handler (.ascx) - обрабатывает веб-страницы управления пользователями
  3. Обработчик веб-службы (.asmx) - обрабатывает страницы веб-службы
  4. Trace Handler (trace.axd) - обрабатывает функции трассировки

ASP.NET HTTP Обработчик - это процесс (часто называемый "конечной точкой"), который запускается в ответ на запрос веб-приложения ASP.NET. Самым распространенным обработчиком является обработчик страниц ASP.NET, который обрабатывает файлы ASPX. Когда пользователи запрашивают .aspx file запрос обрабатывается страницей через обработчик страницы.

Обработчик страниц ASP.NET - это только один тип обработчиков. ASP.NET поставляется с несколькими другими встроенными обработчиками, такими как обработчик веб-службы для .asmx files,

Вы можете создавать собственные обработчики HTTP, когда вам нужна особая обработка, которую вы можете идентифицировать, используя расширения имен файлов в вашем приложении. Например, следующие сценарии были бы хорошими использованиями пользовательских обработчиков HTTP:

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

Сервер изображений Если вы хотите, чтобы ваше веб-приложение обслуживало изображения разных размеров, вы можете написать собственный обработчик для изменения размера изображений, а затем отправить их обратно пользователю в качестве ответа обработчика.

Обработчики HTTP имеют доступ к контексту приложения, включая идентификационные данные запрашивающего пользователя (если он известен), состояние приложения и информацию о сеансе. Когда запрашивается обработчик HTTP, ASP.NET вызывает ProcessRequest метод на соответствующем обработчике. Хендлер ProcessRequest Метод создает ответ, который отправляется обратно запрашивающему браузеру. Как и при любом запросе страницы, ответ проходит через любые модули HTTP, которые подписались на события, которые происходят после запуска обработчика.

Другие вопросы по тегам