AspNetCore.Docs/aspnetcore/fundamentals/servers/kestrel/http2.md

2.0 KiB

title author description monikerRange ms.author ms.custom ms.date no-loc uid
Use HTTP/2 with the ASP.NET Core Kestrel web server rick-anderson Learn about using HTTP/2 with Kestrel, the cross-platform web server for ASP.NET Core. >= aspnetcore-5.0 riande mvc 05/04/2020
Home
Privacy
Kestrel
appsettings.json
ASP.NET Core Identity
cookie
Cookie
Blazor
Blazor Server
Blazor WebAssembly
Identity
Let's Encrypt
Razor
SignalR
fundamentals/servers/kestrel/http2

Use HTTP/2 with the ASP.NET Core Kestrel web server

HTTP/2 is available for ASP.NET Core apps if the following base requirements are met:

  • Operating system†
    • Windows Server 2016/Windows 10 or later‡
    • Linux with OpenSSL 1.0.2 or later (for example, Ubuntu 16.04 or later)
  • Target framework: .NET Core 2.2 or later
  • Application-Layer Protocol Negotiation (ALPN) connection
  • TLS 1.2 or later connection

†HTTP/2 will be supported on macOS in a future release. ‡Kestrel has limited support for HTTP/2 on Windows Server 2012 R2 and Windows 8.1. Support is limited because the list of supported TLS cipher suites available on these operating systems is limited. A certificate generated using an Elliptic Curve Digital Signature Algorithm (ECDSA) may be required to secure TLS connections.

If an HTTP/2 connection is established, HttpRequest.Protocol reports HTTP/2.

Starting with .NET Core 3.0, HTTP/2 is enabled by default. For more information on configuration, see the Kestrel HTTP/2 limits and ListenOptions.Protocols sections.

Advanced HTTP/2 features

Additional HTTP/2 features in Kestrel support gRPC, including support for response trailers and sending reset frames.

Trailers

[!INCLUDE]

Reset

[!INCLUDE]