Czy ktoś może wyjaśnić w mniej niż dwóch zdaniach różnicę między nimi? Tak, wiem, że Google może dostarczyć setki odpowiedzi, ale nie jeden w 2 jasnych zdaniach :)Moduł obsługi HTTP a HTTP
Odpowiedz
HttpHandler jest, gdy pociąg jest kierowany wniosek. HttpModule to stacja po drodze.
To powinna być zaakceptowana odpowiedź. –
Świetne wyjaśnienie inline .. jesteś shakespeare programowania. !!! – Pranav
Cudowne wytłumaczenie! :) –
dwóch zdaniach:
HttpModule wykona dla każdego żądania do aplikacji, niezależnie od rozszerzenia, i jest powszechnie stosowany w przypadku zabezpieczeń, statystyk, rejestrowania itp.
HttpHandler jest na ogół związany z określonym rozszerzeniem i jest używany do takich elementów, jak kanały RSS, generowanie lub modyfikacja dynamicznego obrazu i tym podobne.
Nieco bardziej wyjaśnienie jeśli to nie jest całkowicie jasne:
Sposób myślę o nich - moduły „plug w” na żądanie rurociągu, natomiast Ładowarki „rączki” określonego rozszerzenia pliku. Tak więc, jeśli masz stronę z LoggingModule i PdfHandler, oba będą wykonywane na żądanie do http://example.com/sample.pdf, a moduł rejestrowania sam będzie wykonywany na żądanie do http://example.com/page.aspx.
Jest całkiem jasne, artykuł o różnicy na MSDN: HTTP Handlers and HTTP Modules Overview
ok, więc jeśli chcę uruchomić jakiś kod, który działa przy każdym żądaniu do pliku .aspx, implementuję program obsługi i jeśli chcę uruchomić jakiś kod na każdym żądaniu niezależnie od typu żądanego pliku, implementuję moduł. Czy to to? – frenchie
@frenchie - Nie, strony aspx są zbudowane na HttpHandlers, zapewniając Ci cykl życia strony. Pomyśl o tym jako o aspxowej stronie, ograniczonej do bardzo podstawowego wydarzenia. 'ProcessRequest'. Moduł z drugiej strony zostanie wykonany w dowolnym momencie cyklu życia, do którego go podłączasz. W przypadku scenariusza, w którym chcesz uruchomić coś przed stroną aspx, potrzebujesz modułu. Jednak trzeba ręcznie odfiltrować żądania do stron, które nie są .aspx – Phill
Czy mam rację mówiąc, że każde żądanie może mieć tylko 1 moduł obsługi i wiele modułów? –
Obsługa HTTP to proces uruchamiany w odpowiedzi na żądanie zgłoszone do aplikacji sieci Web ASP.NET. Moduły HTTP umożliwiają sprawdzanie przychodzących i wychodzących żądań i podejmowanie działań na podstawie żądania.
W tym sensie aspx można uznać za typ httphandler? – frenchie
Tak Frenchie..Otwórz kod każdego aspx. Zobaczysz: public partial class good: System.Web.UI.Page Teraz kliknij prawym przyciskiem myszy na stronie i kliknij Przejdź do definicji, zobaczysz: klasa publiczna Strona: TemplateControl, IHttpHandler –
Obsługa HTTP to miejsce, w którym faktycznie kompilacja odbywa się w oparciu o ustawienia. np. jeśli rozszerzenie strony to .aspx, to zostanie skompilowane przez system.web.Ui.Pagahandlefactory. kiedy kompilacja zostanie wykonana, żądanie obsługi HTTP przejdzie przez moduł HTTP i IIS.
Nicea artykuł aboute to HttpModule-and-HttpHandlers
referencyjny: INFO: ASP.NET HTTP i modułów HTTP Rączki Przegląd
„Moduły nazywane są przed i po obsługi wykonuje. Moduły pozwalają programistom przechwytywać, uczestniczyć lub modyfikować każde indywidualne żądanie. Procedury obsługi są używane do przetwarzania poszczególnych żądań punktów końcowych. Procedury obsługi umożliwiają programowi ASP.NET Framework przetwarzanie indywidualnych adresów URL HTTP lub grup rozszerzeń adresów URL w aplikacji. W przeciwieństwie do modułów, tylko jeden moduł obsługi jest używany do przetwarzania żądania ".
Dziękuję, to mi bardzo pomaga –
HttpHandler jest odpowiedzialny za obsługę żądania HTTP, podczas gdy HttpModule odpowiada na zdarzenia cyklu życia aplikacji.
Głównym i wspólnym celem HttpHandler i HttpModule jest wstrzykiwanie logiki przetwarzania wstępnego, zanim żądanie ASP.NET dotrze do serwera IIS.
Program ASP.NET zapewnia dwa sposoby wprowadzania logiki do potoku żądania;
- Http Rączki: Http Handler pomaga nam wprowadzić logikę wstępnego przetwarzania na podstawie rozszerzenia nazwy pliku wezwanego. ASP.NET używa procedur obsługi HTTP do implementacji wielu własnych funkcji. Na przykład program ASP.NET używa procedur obsługi do przetwarzania plików .aspx, .asmx i trace.axd.
przykład: Kanały RSS: Aby utworzyć kanał RSS dla witryny sieci Web, można utworzyć moduł obsługi emitujący format XML w formacie RSS. Kiedy użytkownicy wysyłają żądanie do witryny kończącej się rozszerzeniem .rss, program ASP.NET wywołuje procedurę obsługi, aby przetworzyć żądanie.
Istnieją trzy etapy tworzenia programu Handler 1. Zaimplementuj interfejs IHttpHandler. 2. Zarejestruj program obsługi w pliku web.config lub pliku machine.config. 3. Zamapuj rozszerzenie pliku (* .arshad) na plik aspnet_isapi.dll w IIS.
Interfejs IHttpHandler ma metodę ProcessRequest i właściwość IsReusable, którą należy zaimplementować. ProcessRequest: W tej metodzie zapisujesz kod, który generuje dane wyjściowe dla procedury obsługi. IsResuable: Ta właściwość określa, czy ten program obsługi może zostać ponownie użyty, czy też nie.
można zarejestrować procedurę obsługi w pliku web.config jak ten
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
Uwaga: tutaj jesteśmy obsługi dowolną nazwę pliku z rozszerzeniem Arshad.
- Http Modules: HttpModule to procesor oparty na zdarzeniach do wstrzykiwania logiki przetwarzania wstępnego, zanim żądanie dotrze do serwera IIS. ASP.NET używa modułu HTTP do implementacji wielu własnych funkcji, takich jak uwierzytelnianie i autoryzacja, zarządzanie sesjami i buforowanie wyjściowe itp.
Silnik ASP.NET emituje wiele zdarzeń, gdy żądanie przechodzi przez potok żądania. Niektóre z tych zdarzeń to AuthenticateRequest, AuthorizeRequest, BeginRequest, EndRequest. Używając HttpModule, możesz pisać logikę w tych zdarzeniach. Logika ta jest wykonywana, gdy zdarzenia są uruchamiane i zanim żądanie osiągnie IIS.
Istnieją dwa etapy tworzenia modułów, 1. Wdrożenie modułu interfejsu IHttpModule 2. Rejestracja w pliku web.config lub machine.config
przykład: Bezpieczeństwo: Korzystanie z modułu HTTP, można wykonać niestandardowe uwierzytelnianie lub inne kontrole bezpieczeństwa, zanim zapytanie dotrze do IIS.
- 1. Odbieranie HTTP POST w procedurze obsługi HTTP?
- 2. globalny moduł obsługi odzyskiwania dla golang http panic
- 3. Web API i moduł HTTP
- 4. http Request.FormFile: obsługi plików zip?
- 5. Jaka jest różnica między http: // *: 80 a http: // +: 80
- 6. Różnica między parametrem zapytania HTTP a parametrem formularza HTTP?
- 7. Różnica między pipetowaniem HTTP a multipleksowaniem HTTP za pomocą SPDY
- 8. Limit czasu sesji obsługi w ogólnej procedurze obsługi http
- 9. Znaczenie bool IsReusable w interfejsie obsługi http
- 10. Co to jest "surowy nagłówek HTTP"? Jaka jest różnica między "nagłówkiem HTTP" a "nieprzetworzonym nagłówkiem HTTP"?
- 11. Serwer proxy HTTP HTTP
- 12. Różnica między importem http = require ("http"); i importować * jako http z "http";
- 13. Http czasownik bieżącego kontekstu http
- 14. Klient HTTP HTTP dla ElasticSearch
- 15. Użytkownik HTTP HTTP User Agent
- 16. Różnica między programowaniem gniazd a programowaniem Http
- 17. Logowanie sesji a uwierzytelnianie HTTP. Zalety Wady:
- 18. Usługi sieciowe - SOAP a "XML przez HTTP"
- 19. Dlaczego `http` w wyliczniku http jest Iteratee?
- 20. Jak działa pamięć podręczna HTTP HTTP?
- 21. AngularJS przechwytuje wszystkie żądania HTTP http:
- 22. Jak uzyskać MSXML IXMLHTTPRequest do obsługi przekierowań HTTP?
- 23. Parametry przekazywania w żądaniu HTTP HTTP VBA
- 24. Jaka jest różnica między HTTP-Get a HTTP-POST i dlaczego słabszy HTTP-POST pod względem bezpieczeństwa?
- 25. Debugowanie procedury obsługi protokołu HTTP z programu Visual Studio
- 26. Który moduł dla Nginx jest najlepszy dla HTTP PUSH?
- 27. require() Moduł węzeł z procesu renderer Elektronowej podawane przez HTTP
- 28. Czy Python ma moduł do analizowania żądań HTTP i odpowiedzi?
- 29. Czy moduł HTTP/2 nginx obsługuje Server Push?
- 30. Odpowiedź zerowa z żądania HTTP HTTP Post
W jakim kontekście? – Flimzy
W kontekście poszukiwania kodu przed każdym żądaniem. – frenchie
+1 dla "tak, wiem, że mogę to zrobić Google". – Csharp