Antworten:
Page
ist ein Sonderfallbearbeiter.
Der generische Web-Handler ( *.ashx
, erweiterungsbasierter Prozessor) ist der Standard-HTTP-Handler für alle Web-Handler, die keine Benutzeroberfläche haben und die @WebHandler
Direktive enthalten.
ASP.NET-Seitenhandler ( *.aspx
) ist der Standard-HTTP-Handler für alle ASP.NET-Seiten.
Zu den integrierten HTTP-Handlern gehören auch der Webdienst-Handler ( *.asmx
) und der Trace-Handler ( trace.axd
)
MSDN sagt :
Ein ASP.NET-HTTP-Handler ist der Prozess (häufig als "Endpunkt" bezeichnet), der als Antwort auf eine Anforderung an eine ASP.NET-Webanwendung ausgeführt wird. Der am häufigsten verwendete Handler ist ein ASP.NET-Seitenhandler, der ASPX-Dateien verarbeitet. Wenn Benutzer eine ASPX-Datei anfordern, wird die Anforderung von der Seite über den Seitenhandler verarbeitet.
Das Bild unten veranschaulicht dies:
Zu Ihrer zweiten Frage:
Behandelt ashx mehr Verbindungen als aspx?
Denken Sie nicht so (aber sicher nicht weniger als).
HttpHandler
ist nur ein Abschnitt der Anforderung, die vor dem Page
Abschnitt ausgeführt wird.
.aspx
verwendet einen gesamten Lebenszyklus ( Init
, Load
, PreRender
) und auf Tastenklicks usw. reagieren kann
eine .ashx
hat nur eine einzige ProcessRequest
Methode.
.aspx ist eine gerenderte Seite. Wenn Sie eine Ansicht benötigen, verwenden Sie eine ASPX-Seite. Wenn Sie nur Backend-Funktionen benötigen, aber in derselben Ansicht bleiben, verwenden Sie eine .ashx-Seite.
Für Leute, die zuvor in NodeJs programmiert haben, insbesondere mit ExpressJS. Ich stelle mir .ashx
eine Middleware vor , die die next
Funktion aufruft . Während .aspx
wird die sein , Controller , die entweder auf die Anfrage reagiert tatsächlich um res.redirect
, res.send
oder was auch immer.