Žádosti o funkce v ASP.NET Core

Steve Smith

HttpContextRozhraní API, které aplikace a middleware používají pro zpracování požadavků, má na sebe vrstvu abstrakce pod názvem rozhraní funkcí. Každé rozhraní funkce poskytuje detailní podmnožinu funkcí, které jsou vystaveny nástrojem HttpContext . Tato rozhraní je možné přidat, upravit, zabalit, vyměnit nebo dokonce odebrat serverem nebo middlewarem při zpracování žádosti bez nutnosti znovu implementovat celý HttpContext . Mohou být také použity k napodobování funkčnosti při testování.

Kolekce funkcí

FeaturesVlastnost HttpContext poskytuje přístup ke kolekci rozhraní funkcí pro aktuální požadavek. Vzhledem k tomu, že je kolekce funkcí proměnlivá i v rámci požadavku, je možné použít middleware pro úpravu kolekce a přidání podpory pro další funkce. Některé pokročilé funkce jsou dostupné jenom při přístupu k přidruženému rozhraní prostřednictvím kolekce funkcí.

Rozhraní funkcí

ASP.NET Core definuje počet běžných rozhraní funkcí HTTP v Microsoft.AspNetCore.Http.Features , které jsou sdíleny různými servery a middlewarem a identifikují funkce, které podporují. Servery a middleware můžou také poskytovat vlastní rozhraní s dalšími funkcemi.

Většina rozhraní funkcí nabízí volitelné, funkce na nejvyšší úrovni a jejich přidružená HttpContext rozhraní API poskytují výchozí hodnoty, pokud tato funkce není k dispozici. Několik rozhraní je podle potřeby uvedeno v následujícím obsahu, protože poskytují základní funkce žádosti a odpovědi a musí být implementovány, aby bylo možné žádost zpracovat.

Následující rozhraní funkcí jsou Microsoft.AspNetCore.Http.Features :

IHttpRequestFeature: Definuje strukturu požadavku HTTP, včetně protokolu, cesty, řetězce dotazu, záhlaví a textu. Tato funkce se vyžaduje, aby se daly zpracovat požadavky.

IHttpResponseFeature: Definuje strukturu odpovědi HTTP, včetně stavového kódu, hlaviček a textu odpovědi. Tato funkce se vyžaduje, aby se daly zpracovat požadavky.

IHttpResponseBodyFeature: Definuje různé způsoby, jak vypisuje tělo odpovědi, a to pomocí Stream souboru, PipeWriter nebo. Tato funkce se vyžaduje, aby se daly zpracovat požadavky. Tato náhrada nahrazuje IHttpResponseFeature.Body a IHttpSendFileFeature .

IHttpAuthenticationFeature: Obsahuje ClaimsPrincipal aktuálně přidruženou k žádosti.

IFormFeature: Používá se k analýze a ukládání příchozích zpráv HTTP a více z mezipaměti.

IHttpBodyControlFeature: Používá se k řízení, jestli jsou pro tělo žádosti nebo odpovědi povolené synchronní operace v/v.

IHttpActivityFeature: Používá se k přidání Activity informací pro diagnostické naslouchací procesy.

IHttpBufferingFeature: Definuje metody pro zákaz ukládání požadavků do vyrovnávací paměti nebo odpovědí.

IHttpConnectionFeature: Definuje vlastnosti pro ID připojení a místní a vzdálené adresy a porty.

IHttpMaxRequestBodySizeFeature: Určuje maximální povolenou velikost textu žádosti pro aktuální požadavek.

IHttpRequestBodyDetectionFeature: Určuje, zda požadavek může mít tělo.

IHttpRequestIdentifierFeature: Přidá vlastnost, která může být implementována k jednoznačné identifikaci požadavků.

IHttpRequestLifetimeFeature: Definuje podporu pro přerušení připojení nebo zjištění, zda byl požadavek ukončen předčasně, například odpojením klienta.

IHttpRequestTrailersFeature: Poskytuje přístup k hlavičkám přípojného vozidla, pokud existují.

IHttpResetFeature: Slouží k odesílání zpráv pro resetování u protokolů, které je podporují, například HTTP/2 nebo HTTP/3.

IHttpResponseTrailersFeature: Povolí aplikaci, aby poskytovala hlavičky přípojných vozidel, pokud je to podporováno.

IHttpSendFileFeature: Definuje metodu pro asynchronní odesílání souborů.

IHttpUpgradeFeature: Definuje podporu pro upgrady http, které klientovi umožní určit, které další protokoly chcete použít, pokud chce Server přepínat protokoly.

IHttpWebSocketFeature: Definuje rozhraní API pro podpůrné webové sokety.

IHttpsCompressionFeature: Určuje, zda by měla být použita komprese odpovědí prostřednictvím připojení HTTPS.

IItemsFeature: Ukládá Items kolekci pro stav aplikace na žádost.

IQueryFeature: Analyzuje a ukládá řetězec dotazu do mezipaměti.

IRequestBodyPipeFeature: Představuje tělo požadavku jako PipeReader .

IRequestCookiesFeature: Analyzuje a ukládá hodnoty hlaviček žádosti do mezipaměti Cookie .

IResponseCookiesFeature: Určuje, jak cookie jsou na záhlaví aplikovány odpovědi Set-Cookie .

IServerVariablesFeature: Tato funkce poskytuje přístup k žádostem o proměnné serveru, jako jsou ty, které poskytuje služba IIS.

IServiceProvidersFeature: Poskytuje přístup k typu IServiceProvider s vymezenými požadavky na služby.

ISessionFeature: Definuje ISessionFactory a ISession abstrakce pro podporu uživatelských relací. ISessionFeature je implementováno pomocí SessionMiddleware (viz Relace v ASP.NET Core ).

ITlsConnectionFeature: Definuje rozhraní API pro načítání klientských certifikátů.

ITlsTokenBindingFeature: Definuje metody pro práci s parametry vazby tokenu TLS.

ITrackingConsentFeature: Slouží k dotazování, udělení a stažení souhlasu uživatele ohledně úložiště informací o uživateli, které souvisí s aktivitou a funkcemi lokality.

Další materiály