Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 10 deste artigo.
Advertência
Esta versão do ASP.NET Core já não é suportada. Para mais informações, consulte a Política de Suporte do .NET e .NET Core. Para 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 é totalmente suportado em .NET 7 ou versões posteriores.
Importante
Os aplicativos configurados para aproveitar o HTTP/3 devem ser projetados para também suportar HTTP/1.1 e HTTP/2.
Benefícios do HTTP/3
HTTP/3:
- É a versão mais recente do Protocolo de Transferência de Hipertexto.
- Baseia-se nos pontos fortes de
HTTP/2ao mesmo tempo em que aborda algumas de suas limitações, particularmente em termos de desempenho, latência, confiabilidade e segurança.
| Característica | HTTP/2 |
HTTP/3 |
|---|---|---|
| Transportes | Usa TCP | Utiliza QUIC |
| Conexão | Mais lento devido a TCP + TLS | Combina apertos de mão de transporte e encriptação |
| Configuração | handshake | apertos de mão |
| Cabeça de fila | Afetado pelo nível TCP | Eliminado com QUIC |
| Bloqueio | bloqueio | multiplexação de fluxo |
| Encriptação | TLS sobre TCP | O TLS está integrado no 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 perdas. -
Bloqueio de Cabeceira de Linha:
HTTP/2pode sofrer bloqueio de cabeceira de linha ao nível do TCP, onde um atraso numa transmissão pode afetar outras.HTTP/3, com QUIC, fornece fluxos independentes, para que a perda de pacotes em um fluxo não paralise outros. -
Estabelecimento de Ligações:
HTTP/3com o QUIC pode estabelecer conexões mais rapidamente, pois combina handshakes de transporte e encriptação. -
Criptografia:
HTTP/3exige criptografia TLS 1.3, fornecendo segurança aprimorada por padrão, enquanto é opcional noHTTP/2. -
Multiplexação: Embora ambos sistemas suportem multiplexação, a implementação de
HTTP/3com QUIC é mais eficiente e evita os problemas de bloqueio de linha de frente no nível TCP. -
Migração de conexão: o QUIC in
HTTP/3permite que as conexões persistam mesmo quando o endereço IP de um cliente muda (como mudar de Wi-Fi para celular), melhorando a experiência do usuário móvel.
Processamento antecipado de pedidos
Kestrel pode processar pedidos HTTP/3 sem antes esperar pelo fluxo de controlo e pelo frame inicial SETTINGS. Esta otimização reduz a latência do primeiro pedido em novas ligações HTTP/3.
Em versões do ASP.NET Core anteriores ao .NET 11, Kestrel aguardava para receber o fluxo de controlo QUIC e o seu quadro inicial SETTINGS antes de processar qualquer fluxo de pedidos. Este requisito já não é necessário, o que significa que o primeiro pedido numa nova ligação é concluído mais rapidamente.
Requisitos HTTP/3
HTTP/3 usa QUIC como seu protocolo de transporte. A implementação ASP.NET Core do HTTP/3 depende de MsQuic para fornecer funcionalidade QUIC. Como resultado, o suporte ASP.NET Core ao HTTP/3 depende dos requisitos da plataforma MsQuic. Para obter mais informações sobre como instalar o MsQuic, consulte Dependências da plataforma QUIC. Se a plataforma em que Kestrel está a correr não tiver todos os requisitos para HTTP/3, Kestrel desativa o HTTP/3 e recorre a outros protocolos HTTP.
Como Começar
O HTTP/3 não está ativado por defeito. Adicione uma configuração em 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 ao lado de HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Ative o HTTPS usando
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os routers, firewalls e proxies suportam corretamente HTTP/3, configure o HTTP/3 juntamente com HTTP/1.1 e HTTP/2. Especifique HttpProtocols.Http1AndHttp2AndHttp3 como protocolos suportados por um endpoint.
Para mais informações, consulte Configurar endpoints para Kestrel servidor web.
Configurar QuicTransportOptions
Configure as opções de transporte QUIC chamando o UseQuic método de extensão 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 seguinte descreve os disponíveis QuicTransportOptions.
| Opção | Predefinido | Description |
|---|---|---|
| MaxBidirectionalStreamCount | 100 |
O número máximo de fluxos bidirecionais concorrentes por ligação. |
| MaxUnidirectionalStreamCount | 10 |
O número máximo de fluxos unidirecionais de entrada concorrentes por ligaçã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 escrita em bytes. |
| Backlog | 512 |
O comprimento máximo da fila de ligação pendente. |
| DefaultStreamErrorCode |
0x010c (SOLICITAÇÃO_CANCELADA_H3) |
Código de erro usado quando o fluxo deve abortar internamente o lado de leitura ou escrita do fluxo. |
| DefaultCloseErrorCode |
0x100 (H3_SEM_ERRO) |
Código de erro usado quando uma ligação aberta é eliminada. |
Alt-svc
HTTP/3 é descoberto como uma atualização de HTTP/1.1 ou HTTP/2 através do alt-svc cabeçalho. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de mudar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver ativado.
Teste de host local
Os navegadores não suportam certificados autoassinados em HTTP/3, como o certificado de Kestrel desenvolvimento.
Use
HttpClientpara testes de localhost ou loopback em .NET 6 ou posteriores. Quando usaHttpClientpara fazer um pedido HTTP/3, precisa de uma configuração extra:- Defina
HttpRequestMessage.Versionpara 3.0, ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Para mais informações sobre como usar HTTP/3 com HttpClient, veja 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 é totalmente suportado em .NET 7 ou versões posteriores.
Importante
Os aplicativos configurados para aproveitar o HTTP/3 devem ser projetados para também suportar HTTP/1.1 e HTTP/2.
Benefícios do HTTP/3
HTTP/3:
- É a versão mais recente do Protocolo de Transferência de Hipertexto.
- Baseia-se nos pontos fortes de
HTTP/2ao mesmo tempo em que aborda algumas de suas limitações, particularmente em termos de desempenho, latência, confiabilidade e segurança.
| Característica | HTTP/2 |
HTTP/3 |
|---|---|---|
| Transportes | Usa TCP | Utiliza QUIC |
| Conexão | Mais lento devido a TCP + TLS | Combina apertos de mão de transporte e encriptação |
| Configuração | handshake | apertos de mão |
| Cabeça de fila | Afetado pelo nível TCP | Eliminado com QUIC |
| Bloqueio | bloqueio | multiplexação de fluxo |
| Encriptação | TLS sobre TCP | O TLS está integrado no 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 perdas. -
Bloqueio de Cabeceira de Linha:
HTTP/2pode sofrer bloqueio de cabeceira de linha ao nível do TCP, onde um atraso numa transmissão pode afetar outras.HTTP/3, com QUIC, fornece fluxos independentes, para que a perda de pacotes em um fluxo não paralise outros. -
Estabelecimento de Ligações:
HTTP/3com o QUIC pode estabelecer conexões mais rapidamente, pois combina handshakes de transporte e encriptação. -
Criptografia:
HTTP/3exige criptografia TLS 1.3, fornecendo segurança aprimorada por padrão, enquanto é opcional noHTTP/2. -
Multiplexação: Embora ambos sistemas suportem multiplexação, a implementação de
HTTP/3com QUIC é mais eficiente e evita os problemas de bloqueio de linha de frente no nível TCP. -
Migração de conexão: o QUIC in
HTTP/3permite que as conexões persistam mesmo quando o endereço IP de um cliente muda (como mudar de Wi-Fi para celular), melhorando a experiência do usuário móvel.
Requisitos HTTP/3
HTTP/3 usa QUIC como seu protocolo de transporte. A implementação ASP.NET Core do HTTP/3 depende de MsQuic para fornecer funcionalidade QUIC. Como resultado, o suporte ASP.NET Core ao HTTP/3 depende dos requisitos da plataforma MsQuic. Para obter mais informações sobre como instalar o MsQuic, consulte Dependências da plataforma QUIC. Se a plataforma em execução Kestrel não tiver todos os requisitos para HTTP/3, ela será desativada e Kestrel voltará para outros protocolos HTTP.
Como Começar
HTTP/3 não está habilitado por padrão. Adicione uma configuração em 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 ao lado de HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite o HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies suportam HTTP/3 corretamente, HTTP/3 deve ser configurado junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um ponto de extremidade.
Para mais informações, consulte Configurar endpoints para Kestrel servidor web.
Configurar QuicTransportOptions
As opções de transporte QUIC podem ser configuradas ao chamar o método de extensão UseQuic sobre 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 a lista completa de opções de transporte QUIC disponíveis e as suas descrições, veja QuicTransportOptions.
Alt-svc
HTTP/3 é descoberto como uma atualização de HTTP/1.1 ou HTTP/2 através do alt-svc cabeçalho. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de mudar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver ativado.
Teste de host local
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de Kestrel desenvolvimento.
HttpClientpode ser usado para testes localhost/loopback em .NET 6 ou posteriores. É necessária uma configuração extra ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versionpara 3.0, ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Para mais informações sobre como usar HTTP/3 com HttpClient, veja 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 é totalmente suportado em .NET 7 ou versões posteriores.
Importante
Os aplicativos configurados para aproveitar o HTTP/3 devem ser projetados para também suportar HTTP/1.1 e HTTP/2.
Requisitos HTTP/3
HTTP/3 tem requisitos diferentes dependendo do sistema operacional. Se a plataforma em execução Kestrel não tiver todos os requisitos para HTTP/3, ela será desativada 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
-
libmsquicpacote instalado.
libmsquic é publicado através do repositório oficial de pacotes Linux da Microsoft em packages.microsoft.com. Para instalar este pacote:
- Adicione o
packages.microsoft.comrepositório. Consulte Linux Software Repository for Microsoft Products para instruções. - Instale o
libmsquicpacote usando o gerenciador de pacotes da distro. Por exemplo,apt install libmsquic=1.9*no Ubuntu.
Note: .NET 6 é compatível apenas com as versões 1.9.x do libmsquic. Libmsquic 2.x não é compatível devido a alterações incompatíveis. O Libmsquic recebe atualizações para 1.9.x quando necessário para incorporar correções de segurança.
macOS
HTTP/3 não é suportado atualmente no macOS e pode estar disponível em uma versão futura.
Como Começar
HTTP/3 não está habilitado por padrão. Adicione uma configuração em 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 ao lado de HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite o HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies suportam HTTP/3 corretamente, HTTP/3 deve ser configurado junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um ponto de extremidade.
Para mais informações, consulte Configurar endpoints para Kestrel servidor web.
Alt-svc
HTTP/3 é descoberto como uma atualização de HTTP/1.1 ou HTTP/2 através do alt-svc cabeçalho. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de mudar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver ativado.
Teste de host local
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de Kestrel desenvolvimento.
HttpClientpode ser usado para testes localhost/loopback em .NET 6 ou posteriores. É necessária uma configuração extra ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versionpara 3.0, ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Benefícios do HTTP/3
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 o HTTP/1.1 quanto o HTTP/2 usam TCP como transporte. HTTP/3 usa uma nova tecnologia de transporte desenvolvida juntamente 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 do primeiro pedido. 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 chega ao servidor mais rapidamente.
- Experiência melhorada quando há perda de pacotes de ligação. HTTP/2 multiplexa várias solicitações através de uma conexão TCP. A perda de pacotes na conexão afeta todas as solicitações. Este problema é chamado de "bloqueio de cabeça de linha". Como o QUIC fornece multiplexação nativa, os pacotes perdidos afetam apenas as solicitações em que os dados foram perdidos.
- Suporta a transição entre redes. Este recurso é útil para dispositivos móveis onde é comum alternar entre Wi-Fi e redes celulares como um dispositivo móvel muda de local. Atualmente, as conexões HTTP/1.1 e HTTP/2 falham com um erro ao alternar redes. Um aplicativo ou navegador da Web deve repetir todas as solicitações HTTP com falha. O HTTP/3 permite que o aplicativo ou navegador da Web continue sem problemas quando uma rede muda. Kestrel não suporta transições de rede em .NET 6. Ele 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 configurá-lo Kestrel para usá-lo.
Importante
O HTTP/3 está disponível em .NET 6 como uma funcionalidade <>pré-visualização. A especificação HTTP/3 ainda não está finalizada e podem existir problemas comportamentais ou de desempenho no HTTP/3 com .NET 6.
Para obter mais informações sobre o suporte a recursos de visualização, consulte a seção Recursos de visualização suportados.
Os aplicativos configurados para aproveitar o HTTP/3 devem ser projetados para também suportar HTTP/1.1 e HTTP/2. Se forem identificados problemas no HTTP/3, recomendamos desativar o HTTP/3 até que os problemas sejam resolvidos numa futura versão do ASP.NET Core. Problemas significativos são reportados no repositório GitHub Anúncios.
Requisitos HTTP/3
HTTP/3 tem requisitos diferentes dependendo do sistema operacional. Se a plataforma em execução Kestrel não tiver todos os requisitos para HTTP/3, ela será desativada 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
-
libmsquicpacote instalado.
libmsquic é publicado através do repositório oficial de pacotes Linux da Microsoft em packages.microsoft.com. Para instalar este pacote:
- Adicione o
packages.microsoft.comrepositório. Consulte Linux Software Repository for Microsoft Products para instruções. - Instale o
libmsquicpacote usando o gerenciador de pacotes da distro. Por exemplo,apt install libmsquic=1.9*no Ubuntu.
Note: .NET 6 é compatível apenas com as versões 1.9.x do libmsquic. Libmsquic 2.x não é compatível devido a alterações incompatíveis. O Libmsquic recebe atualizações para 1.9.x quando necessário para incorporar correções de segurança.
macOS
HTTP/3 não é suportado atualmente no macOS e pode estar disponível em uma versão futura.
Como Começar
HTTP/3 não está habilitado por padrão. Adicione uma configuração em 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 ao lado de HTTP/1.1 e HTTP/2 especificando
HttpProtocols.Http1AndHttp2AndHttp3. - Habilite o HTTPS com
UseHttps. HTTP/3 requer HTTPS.
Como nem todos os roteadores, firewalls e proxies suportam HTTP/3 corretamente, HTTP/3 deve ser configurado junto com HTTP/1.1 e HTTP/2. Isso pode ser feito especificando HttpProtocols.Http1AndHttp2AndHttp3 como os protocolos suportados de um ponto de extremidade.
Para mais informações, consulte Configurar endpoints para Kestrel servidor web.
Alt-svc
HTTP/3 é descoberto como uma atualização de HTTP/1.1 ou HTTP/2 através do alt-svc cabeçalho. Isso significa que a primeira solicitação normalmente usará HTTP/1.1 ou HTTP/2 antes de mudar para HTTP/3.
Kestrel adiciona automaticamente o cabeçalho alt-svc se HTTP/3 estiver ativado.
Teste de host local
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de Kestrel desenvolvimento.
HttpClientpode ser usado para testes localhost/loopback em .NET 6 ou posteriores. É necessária uma configuração extra ao usarHttpClientpara fazer uma solicitação HTTP/3:- Defina
HttpRequestMessage.Versionpara 3.0, ou - Defina
HttpRequestMessage.VersionPolicycomoHttpVersionPolicy.RequestVersionOrHigher.
- Defina
Limitações
Alguns cenários HTTPS ainda não são suportados para HTTP/3 no Kestrel. Ao chamar Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps com HttpsConnectionAdapterOptions usando HTTP/3, definir as seguintes opções no HttpsConnectionAdapterOptions é um no-op (não faz nada):
Chamar as seguintes implementações de Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps gera um erro ao usar HTTP/3:
- UseHttps(este ListenOptions listenOptions, ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state, TimeSpan handshakeTimeout)
- UseHttps(este ListenOptions listenOptions, TlsHandshakeCallbackOptions callbackOptions)
Benefícios do HTTP/3
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 o HTTP/1.1 quanto o HTTP/2 usam TCP como transporte. HTTP/3 usa uma nova tecnologia de transporte desenvolvida juntamente 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 do primeiro pedido. 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 chega ao servidor mais rapidamente.
- Experiência melhorada quando há perda de pacotes de ligação. HTTP/2 multiplexa várias solicitações através de uma conexão TCP. A perda de pacotes na conexão afeta todas as solicitações. Este problema é chamado de "bloqueio de cabeça de linha". Como o QUIC fornece multiplexação nativa, os pacotes perdidos afetam apenas as solicitações em que os dados foram perdidos.
- Suporta a transição entre redes. Este recurso é útil para dispositivos móveis onde é comum alternar entre Wi-Fi e redes celulares como um dispositivo móvel muda de local. Atualmente, as conexões HTTP/1.1 e HTTP/2 falham com um erro ao alternar redes. Um aplicativo ou navegador da Web deve repetir todas as solicitações HTTP com falha. O HTTP/3 permite que o aplicativo ou navegador da Web continue sem problemas quando uma rede muda. Kestrel não suporta transições de rede em .NET 6. Ele pode estar disponível em uma versão futura.