2009-08-16 45 views
10

Tôi có một số câu hỏi về httpmodules và httphandlers, tôi hơi bối rối về nhu cầu thực sự của họ, tôi đã tạo nhiều trang web, nhưng hiếm khi sử dụng chúng, chắc chắn tôi mất lợi ích khi không sử dụng chúng, những lợi ích này là gì?httpmodules httphandlers, sử dụng lý tưởng chúng là gì? khi nào nên sử dụng và khi nào không sử dụng?

Khi nào nên sử dụng và khi nào không sử dụng?

Trả lời

6

bạn có thể sử dụng httpmodules để xác thực, kiểm tra hoặc ghi đè url. Vì mỗi yêu cầu đầu tiên đi qua tất cả các mô-đun, trước khi nó được xử lý bởi người trả lời, đây là nơi áp dụng mã mà bạn muốn chạy trước mã ứng dụng cụ thể của bạn.

Bạn sẽ sử dụng một người xử lý nếu bạn không muốn dựa vào công cụ asp.net. ví dụ bạn có thể viết cơ chế dựng hình của riêng bạn dựa trên AJAX, XML và XSLT không dựa trên các trang asp.net truyền thống.

3

HttpModules và HttpHandlers rất hữu ích khi bạn muốn thay đổi xử lý mặc định của IIS tài liệu bằng cách thay đổi hoàn toàn hành vi hoặc thêm trước hoặc sau xử lý tài liệu.

Một ứng dụng thực tế mà tôi đã có cho một HttpModule là để tạo hình thu nhỏ động. Tôi đã viết một HttpModule xử lý tất cả các yêu cầu hình ảnh. Nếu yêu cầu chứa chuỗi truy vấn "? Thumb", tôi sẽ tạo động một hình thu nhỏ thay vì phân phối hình ảnh gốc.

Tôi cũng đã thấy HttpModules được sử dụng để xóa nhận xét và khoảng trắng khỏi đầu ra trang aspx và ghi đè url.

4

Bạn có thấy mình đang viết mã trong sự kiện ASPX Page_Load để phát ra điều gì đó cho phản hồi và sau đó gọi Response.End? Đó là khả năng tốt nhất được viết như một HttpHandler (ashx).

+0

+1 có tôi đã làm từ vài ngày trước :) –

2

HttpHandlers là lựa chọn tuyệt vời cho việc định tuyến lại các loại tệp nhất định và các tài nguyên khác. Ví dụ, khi bạn cần làm điều gì đó với một yêu cầu đến cho một loại tệp mà ASP.NET không bảo vệ thông qua FormsAuthentication, bạn có thể xác định nếu nó là một loại tệp cụ thể, nằm trong một thư mục cụ thể và chuyển hướng người dùng đến một trang khác nếu không được phép.

HttpMô đun có thể thực hiện xử lý cụ thể cho ứng dụng của bạn theo cách độc lập với tài nguyên. Bạn có thể tìm thấy giải thích kỹ thuật hơn tại đây: http://www.15seconds.com/issue/020417.htm

Ngoài ra, chúng còn làm tăng thêm chi phí cho mỗi yêu cầu, có nghĩa là bạn không nên sử dụng chúng cho các tác vụ đòi hỏi quá trình.

2

Cả hai trình xử lý và mô-đun chỉ có thể được hiểu trong ngữ cảnh của mô hình đường ống ASP.NET và cách trình xử lý tùy chỉnh/mô-đun bạn tạo sẽ phù hợp với mô hình đó.

Hai tài nguyên tốt herehere.

Như những người khác đã đề cập mô-đun có thể được sử dụng để tạo ra hành vi tại các điểm sự kiện nhất định (khác sử dụng chung là xử lý ngoại lệ toàn cầu), xử lý tạo ra thiết bị đầu cuối yêu cầu xử lý (nó không chỉ là một tên thông minh), nơi một asp. Ví dụ trang net (mà cuối cùng chỉ là một trình xử lý được bao bọc nặng nề), hoặc là không cần thiết nặng hoặc hoàn toàn sai. Cá nhân tôi sử dụng bất cứ lúc nào tôi đang tạo ra một cái gì đó mà không xuất HTML, mà càng ngày càng phổ biến bạn càng phát triển các ứng dụng web trái với các trang web.

3

Tôi sẽ báo giá sử dụng, mọi người đã đưa ra định nghĩa tốt.

HTTP xử lý
Imaging bạn muốn làm cho sitemap của một trang web để search engine bánh xích, chứ không phải là popping lên các tập tin lưu thoại (Các tập tin lưu hộp thoại xuất hiện khi ASP.NET/IIS không có xử lý mặc định cho loại tệp được yêu cầu, ví dụ: txt). Tôi đã viết Trình xử lý HTTP để tạo các tệp sơ đồ trang web khi đang di chuyển (kéo thông tin sơ đồ trang web từ DB).

Các vấn đề liên quan