INFO: Moduly HTTP technologie ASP.NET a přehled obslužné rutiny protokolu HTTP

Souhrn

Tento článek obsahuje úvod k modulům HTTP technologie ASP.NET a obslužné rutiny protokolu HTTP.

Další přehledy ASP.NET naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
305140 informace: Přehled technologie ASP.NET

Další informace

Moduly HTTP a popisovače HTTP jsou nedílnou součástí architektury technologie ASP.NET. Během zpracování požadavku, každá žádost je zpracovávány více moduly HTTP (například modul ověřování a modul relace) a je potom zpracována jedné obslužné rutiny HTTP. Po zpracování požadavku obslužnou rutinu požadavku toky přes moduly HTTP.

Tento článek je rozdělen do následujících částí:

Moduly protokolu HTTP

Moduly se nazývají před a po spustí obslužnou rutinu. Moduly umožňují vývojářům zachytit, účastnit se nebo upravit každé jednotlivé žádosti. Moduly implementují rozhraní IHttpModule , který je umístěn v oboru názvů System.Web .

Dostupné události

HttpApplication třída poskytuje několik událostí, které lze synchronizovat moduly. Následující události jsou k dispozici pro moduly synchronizovat se při každém požadavku. Tyto události jsou uvedeny v pořadí:
  • BeginRequest: požadavek byl spuštěn. Pokud potřebujete udělat něco na začátku požadavku (například zobrazení reklamní nápisy v horní části každé stránky), synchronizace této události.
  • AuthenticateRequest: Pokud chcete připojit vlastní schéma vlastní ověřování (například vyhledat uživatele proti databázi pro ověření hesla), vytvoří modul, který synchronizuje události a ověřuje uživatele, jak chcete.
  • AuthorizeRequest: Tato událost se používá interně k implementaci mechanismus autorizace (například ukládat seznamy řízení přístupu (ACL) v databázi, nikoli v systému souborů). Přestože můžete přepsat tuto událost, nejsou dobré důvody k tomu.
  • ResolveRequestCache: Tato událost určuje, pokud lze zpracovat stránku z výstupní mezipaměti. Pokud chcete napsat vlastní ukládání do mezipaměti modulu (například mezipaměti založen soubor sestavení namísto mezipaměti), synchronizujte tuto událost, chcete-li určit, zda bude sloužit stránky z mezipaměti.
  • AcquireRequestState: stav relace je načten z úložiště stavu. Pokud chcete vytvořit vlastní modul pro správu státu, synchronizujte tuto událost, chcete-li vyjmout stav z úložiště stavu relace.
  • PreRequestHandlerExecute: této události dojde před provedením obslužné rutiny HTTP.
  • PostRequestHandlerExecute: této události dochází po provedení popisovač HTTP.
  • ReleaseRequestState: stav relace je uložen v úložišti stavu. Pokud vytváříte vlastní relace stav modulu, je třeba uložit stavu zpět v úložišti stavu.
  • UpdateRequestCache: Tato událost zapíše výstup do výstupní mezipaměti. Pokud vytváříte vlastní mezipaměti modulu zpět zápis výstupu do mezipaměti.
  • EndRequest: požadavek byl dokončen. Chcete sestavit ladicí modul, který shromažďuje informace v celém požadavek a zapíše informace na stránku.
Následující události jsou k dispozici pro moduly pro synchronizaci s pro každý požadavek na přenos. Pořadí těchto událostí je nedeterministické.
  • PreSendRequestHeaders: této události dojde před odesláním záhlaví. Pokud chcete přidat další záhlaví, můžete synchronizovat tuto událost z vlastní modulu.
  • PreSendRequestContent: této události dojde, když je volat metodu Response.Flush . Pokud chcete přidat další obsah, můžete synchronizovat tuto událost z vlastní modulu.
  • Chyba: k této události dojde, když dojde k neošetřené výjimce. Pokud chcete napsat vlastní chyba obslužné rutiny modulu synchronizace této události.

Konfigurace modulů HTTP

Obslužné rutiny konfiguračního oddílu < httpModules > odpovídá za konfiguraci moduly HTTP v rámci aplikace. Může být deklarován na počítači, webu nebo na úrovni aplikace. Pro obslužnou rutinu oddílu < httpModules > použijte následující syntaxi:
<httpModules>   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />
<remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />
<clear />
</httpModules>

Vytváření modulů HTTP

Chcete-li vytvořit modul protokolu HTTP, musí implementovat rozhraní IHttpModule . Rozhraní IHttpModule má dvě metody s následující podpisy:
void Init(HttpApplication);void Dispose();

Další informace o vytváření modulů HTTP klepněte na následující čísla článků znalostní báze Microsoft Knowledge Base:
308000 jak: vytvořit modul HTTP ASP.NET pomocí Visual Basic .NET
307996 jak: vytvořit modul HTTP ASP.NET pomocí Visual C# .NET

Obslužné rutiny HTTP

Obslužné rutiny se používají ke zpracování žádostí o individuální koncový bod. Obslužné rutiny umožňují zpracování jednotlivých adres URL protokolu HTTP nebo skupin přípon adres URL v aplikaci technologie ASP.NET framework. Na rozdíl od moduly se používá pouze jednu obslužnou rutinu pro zpracování požadavku. Všechny obslužné rutiny implementovat rozhraní IHttpHandler , který je umístěn v oboru názvů System.Web . Obslužné rutiny jsou analogii rozšíření Internet (Server Application Programming Interface ISAPI).

Konfigurace obslužné rutiny HTTP

Obslužné rutiny konfiguračního oddílu < httpHandlers > je zodpovědný za mapování příchozí adresy URL do tříd IHttpHandler nebo IHttpHandlerFactory . Může být deklarován na počítači, webu nebo na úrovni aplikace. Podadresáře dědí toto nastavení.

Správci slouží ke konfiguraci oddílu < httpHandlers > Značka direktivy < add >. direktivy < Přidat > jsou interpretovány a zpracovány v postupném pořadí shora dolů. Pro obslužnou rutinu oddílu < httpHandlers > použijte následující syntaxi:
<httpHandlers>   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
<remove verb="[verb list]" path="[path/wildcard]" />
<clear />
</httpHandlers>

Vytvoření obslužné rutiny protokolu HTTP

Chcete-li vytvořit Obslužnou rutinu, musíte implementovat rozhraní IHttpHandler . IHttpHandler rozhraní má jednu metodu a jednu vlastnost s následující podpisy:
void ProcessRequest(HttpContext);bool IsReusable {get;}

Poznámka: Pokud vaše obslužná rutina HTTP vyžaduje stav relace, musíte také implementovat rozhraní IRequiresSessionState .
Další informace o vytváření obslužných rutin HTTP klepněte na následující čísla článků znalostní báze Microsoft Knowledge Base:
308001 jak: vytvoření obslužné rutiny protokolu HTTP technologie ASP.NET pomocí Visual C# .NET
Další informace získáte v následujících článcích znalostní báze společnosti Microsoft:
307997 jak: vytvoření obslužné rutiny protokolu HTTP technologie ASP.NET pomocí jazyka Visual Basic .NET
Vlastnosti

ID článku: 307985 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor