Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Http/2 je k dispozici pro aplikace ASP.NET Core, pokud jsou splněny následující základní požadavky:
- Operační systém
- Windows Server 2016/Windows 10 nebo novější
- Linux s OpenSSL 1.0.2 nebo novější (například Ubuntu 16.04 nebo novější)
- macOS 10.15 nebo novější
- Cílová architektura: .NET Core 2.2 nebo novější
- Připojení k vyjednávání protokolu aplikační vrstvy (ALPN)
- Připojení přes protokol TLS 1.2 nebo novější
–Kestrel má omezenou podporu protokolu HTTP/2 ve Windows Serveru 2012 R2 a Windows 8.1. Podpora je omezená, protože seznam podporovaných šifrovacích sad TLS dostupných v těchto operačních systémech je omezený. K zabezpečení připojení TLS může být potřeba certifikát vygenerovaný pomocí algoritmu ECDSA (Elliptic Curve Digital Signature Algorithm).
Pokud se naváže připojení HTTP/2, vlastnost HttpRequest.Protocol bude obsahovat hodnotu HTTP/2.
Od verze .NET Core 3.0 je ve výchozím nastavení povolený protokol HTTP/2. Další informace o konfiguraci najdete v Kestrel částech omezení HTTP/2 a ListenOptions.Protocols .
Pokročilé funkce HTTP/2
Další funkce HTTP/2 v Kestrel podpoře gRPC, včetně podpory pro přívěsy odpovědí a odesílání resetování rámců.
Přívěsy
Přívěsy HTTP se podobají hlavičce HTTP, s výjimkou toho, že se odešlou po odeslání textu odpovědi. Pro službu IIS a HTTP.sys jsou podporovány pouze přívěsy odpovědí HTTP/2.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
V předchozím ukázkovém kódu:
-
SupportsTrailerszajišťuje, aby byly pro odpověď podporovány přívěsy. -
DeclareTrailerpřidá daný název přívěsu do hlavičkyTrailerodpovědi. Deklarování přívěsů odpovědí je volitelné, ale doporučuje se. PokudDeclareTrailerje volána, musí být před odesláním hlaviček odpovědi. -
AppendTrailerpřipojí přívěs.
Reset
Resetování umožňuje serveru resetovat požadavek HTTP/2 se zadaným kódem chyby. Žádost o resetování se považuje za přerušenou.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset v předchozím příkladu kódu určuje INTERNAL_ERROR kód chyby. Další informace o kódech chyb HTTP/2 najdete v části kód chyby specifikace HTTP/2.
Http/2 je k dispozici pro aplikace ASP.NET Core, pokud jsou splněny následující základní požadavky:
- Operační systém†
- Windows Server 2016/Windows 10 nebo novější
- Linux s OpenSSL 1.0.2 nebo novější (například Ubuntu 16.04 nebo novější)
- Cílová architektura: .NET Core 2.2 nebo novější
- Připojení k vyjednávání protokolu aplikační vrstvy (ALPN)
- Připojení přes protokol TLS 1.2 nebo novější
†HTTP/2 se v macOS bude podporovat v budoucí verzi. –Kestrel má omezenou podporu protokolu HTTP/2 ve Windows Serveru 2012 R2 a Windows 8.1. Podpora je omezená, protože seznam podporovaných šifrovacích sad TLS dostupných v těchto operačních systémech je omezený. K zabezpečení připojení TLS může být potřeba certifikát vygenerovaný pomocí algoritmu ECDSA (Elliptic Curve Digital Signature Algorithm).
Pokud se naváže připojení HTTP/2, vlastnost HttpRequest.Protocol bude obsahovat hodnotu HTTP/2.
Od verze .NET Core 3.0 je ve výchozím nastavení povolený protokol HTTP/2. Další informace o konfiguraci najdete v Kestrel částech omezení HTTP/2 a ListenOptions.Protocols .
Pokročilé funkce HTTP/2
Další funkce HTTP/2 v Kestrel podpoře gRPC, včetně podpory pro přívěsy odpovědí a odesílání resetování rámců.
Přívěsy
Přívěsy HTTP se podobají hlavičce HTTP, s výjimkou toho, že se odešlou po odeslání textu odpovědi. Pro službu IIS a HTTP.sys jsou podporovány pouze přívěsy odpovědí HTTP/2.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
V předchozím ukázkovém kódu:
-
SupportsTrailerszajišťuje, aby byly pro odpověď podporovány přívěsy. -
DeclareTrailerpřidá daný název přívěsu do hlavičkyTrailerodpovědi. Deklarování přívěsů odpovědí je volitelné, ale doporučuje se. PokudDeclareTrailerje volána, musí být před odesláním hlaviček odpovědi. -
AppendTrailerpřipojí přívěs.
Reset
Resetování umožňuje serveru resetovat požadavek HTTP/2 se zadaným kódem chyby. Žádost o resetování se považuje za přerušenou.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset v předchozím příkladu kódu určuje INTERNAL_ERROR kód chyby. Další informace o kódech chyb HTTP/2 najdete v části kód chyby specifikace HTTP/2.
Http/2 je k dispozici pro aplikace ASP.NET Core, pokud jsou splněny následující základní požadavky:
- Operační systém†
- Windows Server 2016/Windows 10 nebo novější
- Linux s OpenSSL 1.0.2 nebo novější (například Ubuntu 16.04 nebo novější)
- Cílová architektura: .NET Core 2.2 nebo novější
- Připojení k vyjednávání protokolu aplikační vrstvy (ALPN)
- Připojení přes protokol TLS 1.2 nebo novější
†HTTP/2 se v macOS bude podporovat v budoucí verzi. –Kestrel má omezenou podporu protokolu HTTP/2 ve Windows Serveru 2012 R2 a Windows 8.1. Podpora je omezená, protože seznam podporovaných šifrovacích sad TLS dostupných v těchto operačních systémech je omezený. K zabezpečení připojení TLS může být potřeba certifikát vygenerovaný pomocí algoritmu ECDSA (Elliptic Curve Digital Signature Algorithm).
Pokud se naváže připojení HTTP/2, vlastnost HttpRequest.Protocol bude obsahovat hodnotu HTTP/2.
Od verze .NET Core 3.0 je ve výchozím nastavení povolený protokol HTTP/2. Další informace o konfiguraci najdete v Kestrel částech omezení HTTP/2 a ListenOptions.Protocols .
Pokročilé funkce HTTP/2
Další funkce HTTP/2 v Kestrel podpoře gRPC, včetně podpory pro přívěsy odpovědí a odesílání resetování rámců.
Přívěsy
Přívěsy HTTP se podobají hlavičce HTTP, s výjimkou toho, že se odešlou po odeslání textu odpovědi. Pro službu IIS a HTTP.sys jsou podporovány pouze přívěsy odpovědí HTTP/2.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
V předchozím ukázkovém kódu:
-
SupportsTrailerszajišťuje, aby byly pro odpověď podporovány přívěsy. -
DeclareTrailerpřidá daný název přívěsu do hlavičkyTrailerodpovědi. Deklarování přívěsů odpovědí je volitelné, ale doporučuje se. PokudDeclareTrailerje volána, musí být před odesláním hlaviček odpovědi. -
AppendTrailerpřipojí přívěs.
Reset
Resetování umožňuje serveru resetovat požadavek HTTP/2 se zadaným kódem chyby. Žádost o resetování se považuje za přerušenou.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset v předchozím příkladu kódu určuje INTERNAL_ERROR kód chyby. Další informace o kódech chyb HTTP/2 najdete v části kód chyby specifikace HTTP/2.