Respostas:
Page
é um tratador de caso especial.
O manipulador genérico da Web ( *.ashx
processador baseado em extensão) é o manipulador HTTP padrão para todos os manipuladores da Web que não possuem uma IU e que incluem a @WebHandler
diretiva.
ASP.NET page handler ( *.aspx
) é o manipulador HTTP padrão para todas as páginas ASP.NET.
Entre os manipuladores HTTP integrados, há também manipulador de serviço da Web ( *.asmx
) e manipulador de rastreamento ( trace.axd
)
MSDN diz :
Um manipulador HTTP ASP.NET é o processo (freqüentemente referido como o "ponto de extremidade") que é executado em resposta a uma solicitação feita a um aplicativo Web ASP.NET. O manipulador mais comum é um manipulador de página ASP.NET que processa arquivos .aspx. Quando os usuários solicitam um arquivo .aspx, a solicitação é processada pela página por meio do manipulador de páginas.
A imagem abaixo ilustra isso:
Quanto à sua segunda pergunta:
O ashx lida com mais conexões do que o aspx?
Não pense assim (mas com certeza, pelo menos não menos que).
HttpHandler
é apenas uma seção da solicitação que está sendo executada antes da Page
seção.
.aspx
usa um ciclo de vida completo ( Init
, Load
, PreRender
) e pode responder a cliques de botão etc.
Um .ashx
tem apenas um único ProcessRequest
método.
.aspx é uma página renderizada. Se você precisar de uma visualização, use uma página .aspx. Se tudo o que você precisa é a funcionalidade de back-end, mas permanecerá na mesma visualização, use uma página .ashx.
Para pessoas que já programaram em nodeJs antes, particularmente usando expressJS. Eu penso .ashx
em um middleware que chama a next
função. Enquanto .aspx
será o controlador que realmente responderá à solicitação, seja ao redor res.redirect
, res.send
seja o que for.