Что такое HttpHandler в ASP.NET - PullRequest
62 голосов
/ 24 декабря 2008

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

Ответы [ 6 ]

75 голосов
/ 24 декабря 2008

Проще говоря, 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.axd): обрабатывает функциональность трассировки

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

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

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

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

14 голосов
/ 24 декабря 2008

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

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

2 голосов
/ 10 декабря 2012

Пример 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;}

0 голосов
/ 07 августа 2016

Обработчик 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, которые подписались на события, которые происходят после запуска обработчика.

0 голосов
/ 15 августа 2013

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

0 голосов
/ 25 июля 2013

Любой класс, который реализует 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.axd) - обрабатывает функциональность трассировки
...