Câu trả lời:
Page
là một trình xử lý trường hợp đặc biệt.
Trình xử lý Web chung ( *.ashx
, trình xử lý dựa trên tiện ích mở rộng) là trình xử lý HTTP mặc định cho tất cả các trình xử lý Web không có giao diện người dùng và bao gồm @WebHandler
chỉ thị.
Trình xử lý trang ASP.NET ( *.aspx
) là trình xử lý HTTP mặc định cho tất cả các trang ASP.NET.
Trong số các trình xử lý HTTP tích hợp còn có trình xử lý dịch vụ Web ( *.asmx
) và trình xử lý theo dõi ( trace.axd
)
MSDN nói :
Trình xử lý ASP.NET HTTP là quá trình (thường được gọi là "điểm cuối") chạy theo yêu cầu được gửi đến ứng dụng Web ASP.NET. Trình xử lý phổ biến nhất là trình xử lý trang ASP.NET xử lý tệp .aspx. Khi người dùng yêu cầu tệp .aspx, yêu cầu sẽ được trang xử lý thông qua trình xử lý trang.
Hình ảnh dưới đây minh họa điều này:
Đối với câu hỏi thứ hai của bạn:
Ashx có xử lý nhiều kết nối hơn aspx không?
Đừng nghĩ như vậy (nhưng chắc chắn, ít nhất là không ít hơn).
HttpHandler
chỉ là một phần của yêu cầu đang được thực hiện trước Page
phần.
.aspx
sử dụng một vòng đời đầy đủ ( Init
, Load
, PreRender
) và có thể đáp ứng với nhấp chuột vào nút, vv
Một .ashx
chỉ có một đơn ProcessRequest
phương.
.aspx là một trang được kết xuất. Nếu bạn cần xem, hãy sử dụng trang .aspx. Nếu tất cả những gì bạn cần là chức năng phụ trợ nhưng vẫn ở trên cùng một chế độ xem, hãy sử dụng trang .ashx.