Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esta não é a versão mais recente deste artigo. Para ver a versão atual, consulte a versão .NET 10 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte o .NET e .NET Core Support Policy. Para ver a versão atual, consulte a versão .NET 10 deste artigo.
HTTP/3 é um padrão aprovado e a terceira versão principal do HTTP. Este artigo discute os requisitos para HTTP/3. O HTTP/3 tem suporte total no .NET 7 ou posterior.
Importante
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2.
Benefícios de HTTP/3
HTTP/3:
- É a versão mais recente do Protocolo de Transferência de Hipertexto.
- Baseia-se nos pontos fortes do
HTTP/2abordando algumas de suas limitações, particularmente em termos de desempenho, latência, confiabilidade e segurança.
| Característica | HTTP/2 |
HTTP/3 |
|---|---|---|
| Transporte | Usa TCP | Utiliza o protocolo QUIC |
| Conexão | Mais lento devido a TCP + TLS | Combina handshakes de transporte e criptografia |
| Configuração | handshake | handshakes |
| Início de linha | Afetado pelo nível de TCP | Eliminado usando QUIC |
| Bloqueio | Bloqueio | multiplexação de fluxo |
| Encriptação | TLS sobre TCP | O TLS é integrado ao QUIC |
As principais diferenças de HTTP/2 para HTTP/3 são:
-
Protocolo de Transporte:
HTTP/3usa QUIC em vez de TCP. O QUIC oferece melhor desempenho, menor latência e melhor confiabilidade, especialmente em redes móveis e com perda. -
Bloqueio de início de linha:
HTTP/2pode sofrer com bloqueio de início de linha no nível do TCP, no qual um atraso em um fluxo pode afetar outros.HTTP/3, com o QUIC, fornece fluxos independentes, portanto, a perda de pacotes em um fluxo não interrompe os outros. -
Estabelecimento de conexão:
HTTP/3com o QUIC pode estabelecer conexões mais rapidamente, pois combina handshakes de transporte e criptografia. -
Criptografia:
HTTP/3exige criptografia TLS 1.3, fornecendo segurança aprimorada por padrão, enquanto é opcional emHTTP/2. - Multiplexação: embora ambos ofereçam suporte à multiplexação, a implementação com QUIC é mais eficiente e evita os problemas de bloqueio de início de linha no nível do TCP.
-
Migração de conexão: o QUIC
HTTP/3permite que as conexões persistam mesmo quando o endereço IP de um cliente é alterado (como mudar de Wi-Fi para celular), melhorando a experiência do usuário móvel.
Processamento antecipado de solicitações
Kestrel pode processar solicitações HTTP/3 sem primeiro aguardar o fluxo de controle e o quadro CONFIGURAÇÕES inicial. Essa otimização reduz a latência de primeira solicitação em novas conexões HTTP/3.
Em versões anteriores a .NET 11 do ASP.NET Core, Kestrel aguardava para receber o fluxo de controle QUIC e a estrutura de CONFIGURAÇÕES inicial antes de processar qualquer fluxo de solicitação. Esse requisito não é mais necessário, o que significa que a primeira solicitação em uma nova conexão é concluída mais rapidamente.
Requisitos de HTTP/3
HTTP/3 usa QUIC como seu protocolo de transporte. A implementação de HTTP/3 no ASP.NET Core depende de MsQuic para fornecer funcionalidade QUIC. Como resultado, ASP.NET Core suporte a HTTP/3 depende dos requisitos da plataforma MsQuic. Para obter mais informações sobre como instalar o MsQuic, consulte as dependências da Plataforma QUIC. Se a plataforma em execução Kestrel não tiver todos os requisitos para HTTP/3, Kestrel desabilitará HTTP/3 e retornará a outros protocolos HTTP.
Começando
HTTP/3 não está habilitado por padrão. Adicionar configuração a Program.cs para habilitar HTTP/3.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
O código anterior configura a porta 5001 para:
- Use HTTP/3 junto com HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilitar HTTPS usando
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies dão suporte adequado a HTTP/3, configure HTTP/3 junto com HTTP/1.1 e HTTP/2. Especifique HttpProtocols.Http1AndHttp2AndHttp3 como protocolos compatíveis com um ponto de extremidade.
Para obter mais informações, consulte Configurar endpoints para Kestrel servidor Web.
Configurar QuicTransportOptions
Configure as opções de transporte do QUIC chamando o método de extensão UseQuic em IWebHostBuilder.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseQuic(options =>
{
#pragma warning disable CA2252 // Using preview features
options.MaxBidirectionalStreamCount = 200;
#pragma warning restore CA2252
});
builder.WebHost.ConfigureKestrel((context, serverOptions) =>
{
serverOptions.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
A tabela a seguir descreve as opções disponíveis QuicTransportOptions.
| Opção | Padrão | Description |
|---|---|---|
| MaxBidirectionalStreamCount | 100 |
O número máximo de fluxos bidirecionais simultâneos por conexão. |
| MaxUnidirectionalStreamCount | 10 |
O número máximo de fluxos unidirecionais de entrada simultâneos por conexão. |
| MaxReadBufferSize |
1024 * 1024 (1 MB) |
O tamanho máximo do buffer de leitura em bytes. |
| MaxWriteBufferSize |
64 * 1024 (64 KB) |
O tamanho máximo do buffer de gravação em bytes. |
| Backlog | 512 |
O comprimento máximo da fila de conexão pendente. |
| DefaultStreamErrorCode |
0x010c (H3_PEDIDO_CANCELADO) |
Código de erro usado quando o fluxo deve anular o lado de leitura ou gravação do fluxo internamente. |
| DefaultCloseErrorCode |
0x100 (H3_SEM_ERRO) |
Código de erro usado quando uma conexão aberta é descartada. |
Alt-svc
O HTTP/3 É descoberto como uma atualização do HTTP/1.1 ou HTTP/2 por meio do cabeçalho alt-svc. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de alternar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver habilitado.
Teste de localhost
Os navegadores não dão suporte a certificados autoassinados em HTTP/3, como o Kestrel certificado de desenvolvimento.
Use
HttpClientpara testes de localhost ou loopback no .NET 6 ou posterior. Quando você usaHttpClientpara fazer uma solicitação HTTP/3, você precisa de uma configuração extra:- Defina
HttpRequestMessage.Versioncomo 3.0 ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Para obter mais informações sobre como usar HTTP/3 com HttpClient, consulte HTTP/3 com .NET.
HTTP/3 é um padrão aprovado e a terceira versão principal do HTTP. Este artigo discute os requisitos para HTTP/3. O HTTP/3 tem suporte total no .NET 7 ou posterior.
Importante
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2.
Benefícios de HTTP/3
HTTP/3:
- É a versão mais recente do Protocolo de Transferência de Hipertexto.
- Baseia-se nos pontos fortes do
HTTP/2abordando algumas de suas limitações, particularmente em termos de desempenho, latência, confiabilidade e segurança.
| Característica | HTTP/2 |
HTTP/3 |
|---|---|---|
| Transporte | Usa TCP | Utiliza o protocolo QUIC |
| Conexão | Mais lento devido a TCP + TLS | Combina handshakes de transporte e criptografia |
| Configuração | handshake | handshakes |
| Início de linha | Afetado pelo nível de TCP | Eliminado usando QUIC |
| Bloqueio | Bloqueio | multiplexação de fluxo |
| Encriptação | TLS sobre TCP | O TLS é integrado ao QUIC |
As principais diferenças de HTTP/2 para HTTP/3 são:
-
Protocolo de Transporte:
HTTP/3usa QUIC em vez de TCP. O QUIC oferece melhor desempenho, menor latência e melhor confiabilidade, especialmente em redes móveis e com perda. -
Bloqueio de início de linha:
HTTP/2pode sofrer com bloqueio de início de linha no nível do TCP, no qual um atraso em um fluxo pode afetar outros.HTTP/3, com o QUIC, fornece fluxos independentes, portanto, a perda de pacotes em um fluxo não interrompe os outros. -
Estabelecimento de conexão:
HTTP/3com o QUIC pode estabelecer conexões mais rapidamente, pois combina handshakes de transporte e criptografia. -
Criptografia:
HTTP/3exige criptografia TLS 1.3, fornecendo segurança aprimorada por padrão, enquanto é opcional emHTTP/2. - Multiplexação: embora ambos ofereçam suporte à multiplexação, a implementação com QUIC é mais eficiente e evita os problemas de bloqueio de início de linha no nível do TCP.
-
Migração de conexão: o QUIC
HTTP/3permite que as conexões persistam mesmo quando o endereço IP de um cliente é alterado (como mudar de Wi-Fi para celular), melhorando a experiência do usuário móvel.
Requisitos de HTTP/3
HTTP/3 usa QUIC como seu protocolo de transporte. A implementação de HTTP/3 no ASP.NET Core depende de MsQuic para fornecer funcionalidade QUIC. Como resultado, ASP.NET Core suporte a HTTP/3 depende dos requisitos da plataforma MsQuic. Para obter mais informações sobre como instalar o MsQuic, consulte as dependências da Plataforma QUIC. Se a plataforma em que Kestrel está em execução não tiver todos os requisitos para HTTP/3, ela será desabilitada e Kestrel retornará para outros protocolos HTTP.
Começando
HTTP/3 não está habilitado por padrão. Adicionar configuração a Program.cs para habilitar HTTP/3.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
O código anterior configura a porta 5001 para:
- Use HTTP/3 junto com HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies dão suporte adequado a HTTP/3, recomendamos configurar o HTTP/3 junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um endpoint.
Para obter mais informações, consulte Configurar pontos de extremidade para o Kestrel servidor Web.
Configurar QuicTransportOptions
As opções de transporte QUIC podem ser configuradas ao chamar o método de extensão UseQuic em IWebHostBuilder.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseQuic(options =>
{
#pragma warning disable CA2252 // Using preview features
options.MaxBidirectionalStreamCount = 200;
#pragma warning restore CA2252
});
builder.WebHost.ConfigureKestrel((context, serverOptions) =>
{
serverOptions.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
Para obter a lista completa das opções de transporte QUIC disponíveis e suas descrições, consulte QuicTransportOptions.
Alt-svc
O HTTP/3 É descoberto como uma atualização do HTTP/1.1 ou HTTP/2 por meio do cabeçalho alt-svc. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de alternar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver habilitado.
Teste de localhost
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClientpode ser usado para testes localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versioncomo 3.0 ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Para obter mais informações sobre como usar HTTP/3 com HttpClient, consulte HTTP/3 com .NET.
HTTP/3 é um padrão proposto e a terceira versão principal do HTTP. Este artigo discute os requisitos para HTTP/3. O HTTP/3 tem suporte total no .NET 7 ou posterior.
Importante
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2.
Requisitos de HTTP/3
HTTP/3 tem requisitos diferentes dependendo do sistema operacional. Se a plataforma em que Kestrel estiver em execução não tiver todos os requisitos para HTTP/3, ela será desabilitada e Kestrel retornará para outros protocolos HTTP.
Windows
- Windows 11 Build 22000 ou posterior ou Windows Server 2022.
- Conexão TLS 1.3 ou posterior
Linux
- Pacote
libmsquicinstalado.
libmsquic é publicado por meio do repositório de pacotes linux oficial do Microsoft em packages.microsoft.com. Para instalar esse pacote:
- Adicione o repositório
packages.microsoft.com. Consulte Linux Software Repository for Microsoft Products para obter instruções. - Instale o pacote
libmsquicusando o gerenciador de pacotes da distribuição. Por exemplo,apt install libmsquic=1.9*no Ubuntu.
Note: .NET 6 só é compatível com as versões 1.9.x do libmsquic. O Libmsquic 2.x não é compatível devido a alterações interruptivas. O Libmsquic receberá atualizações para 1.9.x quando necessário para incorporar correções de segurança.
macOS
No momento, não há suporte para HTTP/3 no macOS, mas pode estar disponível em uma versão futura.
Começando
HTTP/3 não está habilitado por padrão. Adicionar configuração a Program.cs para habilitar HTTP/3.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
O código anterior configura a porta 5001 para:
- Use HTTP/3 junto com HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies dão suporte adequado a HTTP/3, recomendamos configurar o HTTP/3 junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um endpoint.
Para obter mais informações, consulte Configurar pontos de extremidade para o Kestrel servidor Web.
Alt-svc
O HTTP/3 É descoberto como uma atualização do HTTP/1.1 ou HTTP/2 por meio do cabeçalho alt-svc. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de alternar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver habilitado.
Teste de localhost
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClientpode ser usado para testes localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versioncomo 3.0 ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Benefícios de HTTP/3
O HTTP/3 usa a mesma semântica que HTTP/1.1 e HTTP/2: os mesmos métodos de solicitação, códigos de status e campos de mensagem se aplicam a todas as versões. As diferenças estão no transporte subjacente. Tanto HTTP/1.1 quanto HTTP/2 usam TCP como transporte. O HTTP/3 usa uma nova tecnologia de transporte desenvolvida junto com HTTP/3 chamada QUIC.
HTTP/3 e QUIC têm uma série de benefícios em comparação com HTTP/1.1 e HTTP/2:
- Tempo de resposta mais rápido da primeira solicitação. QUIC e HTTP/3 negociam a conexão em menos viagens de ida e volta entre o cliente e o servidor. A primeira solicitação alcança o servidor mais rapidamente.
- Experiência aprimorada quando há perda de pacote de conexão. O HTTP/2 multiplexa várias solicitações por meio de uma conexão TCP. A perda de pacote na conexão afeta todas as solicitações. Esse problema é chamado de "bloqueio de cabeçalho". Como o QUIC fornece multiplexação nativa, os pacotes perdidos afetam apenas as solicitações em que os dados foram perdidos.
- Dá suporte à transição entre redes. Esse recurso é útil para dispositivos móveis em que é comum alternar entre redes Wi-Fi e celulares quando um dispositivo móvel muda de local. Atualmente, as conexões HTTP/1.1 e HTTP/2 falham e apresentam um erro ao alternar redes. Um aplicativo ou navegador da Web deve repetir as solicitações HTTP com falha. O HTTP/3 permite que o aplicativo ou navegador da Web continue perfeitamente quando uma rede é alterada. Kestrel não dá suporte a transições de rede no .NET 6. Pode estar disponível em uma versão futura.
HTTP/3 é a terceira e próxima versão principal do HTTP. Este artigo discute os requisitos para HTTP/3 e como configurar Kestrel para usá-lo.
Importante
HTTP/3 está disponível no .NET 6 como um recurso preview. A especificação HTTP/3 não está finalizada e podem existir problemas comportamentais ou de desempenho em HTTP/3 com .NET 6.
Para obter mais informações sobre o suporte à versão prévia do recurso, confira a seção de suporte às versões prévias do recurso.
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2. Se os problemas forem identificados em HTTP/3, recomendamos desabilitar HTTP/3 até que os problemas sejam resolvidos em uma versão futura do ASP.NET Core. Problemas significativos são relatados no repositório do GitHub Announcements.
Requisitos de HTTP/3
HTTP/3 tem requisitos diferentes dependendo do sistema operacional. Se a plataforma em que Kestrel estiver em execução não tiver todos os requisitos para HTTP/3, ela será desabilitada e Kestrel retornará para outros protocolos HTTP.
Windows
- Windows 11 Build 22000 ou posterior ou Windows Server 2022.
- Conexão TLS 1.3 ou posterior
Linux
- Pacote
libmsquicinstalado.
libmsquic é publicado por meio do repositório de pacotes linux oficial do Microsoft em packages.microsoft.com. Para instalar esse pacote:
- Adicione o repositório
packages.microsoft.com. Consulte Linux Software Repository for Microsoft Products para obter instruções. - Instale o pacote
libmsquicusando o gerenciador de pacotes da distribuição. Por exemplo,apt install libmsquic=1.9*no Ubuntu.
Note: .NET 6 só é compatível com as versões 1.9.x do libmsquic. O Libmsquic 2.x não é compatível devido a alterações interruptivas. O Libmsquic receberá atualizações para 1.9.x quando necessário para incorporar correções de segurança.
macOS
No momento, não há suporte para HTTP/3 no macOS, mas pode estar disponível em uma versão futura.
Começando
HTTP/3 não está habilitado por padrão. Adicionar configuração a Program.cs para habilitar HTTP/3.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
listenOptions.UseHttps();
});
});
O código anterior configura a porta 5001 para:
- Use HTTP/3 junto com HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies dão suporte adequado a HTTP/3, recomendamos configurar o HTTP/3 junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um endpoint.
Para obter mais informações, consulte Configurar endpoints para o servidor WebKestrel.
Alt-svc
O HTTP/3 É descoberto como uma atualização do HTTP/1.1 ou HTTP/2 por meio do cabeçalho alt-svc. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de alternar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver habilitado.
Teste de localhost
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClientpode ser usado para testes localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versioncomo 3.0 ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Limitações
Alguns cenários HTTPS ainda não têm suporte para HTTP/3 no Kestrel. Ao chamar Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps com HttpsConnectionAdapterOptions ao usar HTTP/3, definir as seguintes opções no HttpsConnectionAdapterOptions é um no-op (ele não faz nada):
Chamar as seguintes implementações de Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps ocasiona a geração de um erro ao usar HTTP/3:
- UseHttps(this ListenOptions listenOptions, ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state, TimeSpan handshakeTimeout)
- UseHttps(this ListenOptions listenOptions, TlsHandshakeCallbackOptions callbackOptions)
Benefícios de HTTP/3
O HTTP/3 usa a mesma semântica que HTTP/1.1 e HTTP/2: os mesmos métodos de solicitação, códigos de status e campos de mensagem se aplicam a todas as versões. As diferenças estão no transporte subjacente. Tanto HTTP/1.1 quanto HTTP/2 usam TCP como transporte. O HTTP/3 usa uma nova tecnologia de transporte desenvolvida junto com HTTP/3 chamada QUIC.
HTTP/3 e QUIC têm uma série de benefícios em comparação com HTTP/1.1 e HTTP/2:
- Tempo de resposta mais rápido da primeira solicitação. QUIC e HTTP/3 negociam a conexão em menos viagens de ida e volta entre o cliente e o servidor. A primeira solicitação alcança o servidor mais rapidamente.
- Experiência aprimorada quando há perda de pacote de conexão. O HTTP/2 multiplexa várias solicitações por meio de uma conexão TCP. A perda de pacote na conexão afeta todas as solicitações. Esse problema é chamado de "bloqueio de cabeçalho". Como o QUIC fornece multiplexação nativa, os pacotes perdidos afetam apenas as solicitações em que os dados foram perdidos.
- Dá suporte à transição entre redes. Esse recurso é útil para dispositivos móveis em que é comum alternar entre redes Wi-Fi e celulares quando um dispositivo móvel muda de local. Atualmente, as conexões HTTP/1.1 e HTTP/2 falham e apresentam um erro ao alternar redes. Um aplicativo ou navegador da Web deve repetir as solicitações HTTP com falha. O HTTP/3 permite que o aplicativo ou navegador da Web continue perfeitamente quando uma rede é alterada. Kestrel não dá suporte a transições de rede no .NET 6. Pode estar disponível em uma versão futura.