Ответы:
Page
- это специальный обработчик случаев.
Универсальный веб-обработчик ( *.ashx
процессор на основе расширений) - это HTTP-обработчик по умолчанию для всех веб-обработчиков, не имеющих пользовательского интерфейса и включающих @WebHandler
директиву.
Обработчик страницы ASP.NET ( *.aspx
) является обработчиком HTTP по умолчанию для всех страниц ASP.NET.
Среди встроенных обработчиков HTTP есть также обработчик веб-службы ( *.asmx
) и обработчик трассировки ( trace.axd
).
MSDN говорит :
Обработчик HTTP ASP.NET - это процесс (часто называемый «конечной точкой»), который выполняется в ответ на запрос, сделанный к веб-приложению ASP.NET. Наиболее распространенный обработчик - обработчик страницы ASP.NET, обрабатывающий файлы .aspx. Когда пользователи запрашивают файл .aspx, запрос обрабатывается страницей через обработчик страницы.
Изображение ниже иллюстрирует это:
Что касается вашего второго вопроса:
Обрабатывает ли ashx больше соединений, чем aspx?
Не думаю (но точно, по крайней мере, не меньше).
HttpHandler
это просто раздел запроса, который выполняется перед Page
разделом.
.aspx
использует полный жизненный цикл ( Init
, Load
, PreRender
) и может реагировать на нажатия кнопок и т.д. имеют только один метод..ashx
ProcessRequest
.aspx - это отображаемая страница. Если вам нужно представление, используйте страницу .aspx. Если все, что вам нужно, это функциональность серверной части, но при этом будет оставаться то же представление, используйте страницу .ashx.
Для людей, которые раньше программировали на nodeJs, особенно с использованием expressJS. Я думаю , .ashx
как промежуточный слой , который вызывает next
функцию. В то время как .aspx
будет контроллер, который фактически отвечает на запрос либо вокруг res.redirect
, res.send
либо что-то еще.