Eventos
19 de nov., 23 - 21 de nov., 23
Participe de sessões online no Microsoft Ignite criadas para expandir suas habilidades e ajudá-lo a lidar com os problemas complexos de hoje.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para a versão atual, consulte a versão .NET 9 deste artigo.
HTTP/3 é um padrão aprovado e a terceira versão principal do HTTP. Este artigo discute os requisitos para HTTP/3. HTTP/3 é totalmente compatível no ASP.NET Core 7.0 e posterior.
Importante
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2.
HTTP/3 tem requisitos diferentes dependendo do sistema operacional. 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.
libmsquic
instalado.libmsquic
é publicado por meio do repositório de pacotes Linux oficial da Microsoft em packages.microsoft.com
. Para instalar esse pacote:
packages.microsoft.com
. Confira Repositório de Software do Linux para Produtos da Microsoft para obter instruções.libmsquic
usando o gerenciador de pacotes da distribuição. Por exemplo, apt install libmsquic=1.9*
no Ubuntu.Observação: .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.
No momento, não há suporte para HTTP/3 no macOS, mas pode estar disponível em uma versão futura.
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:
HttpProtocols.Http1AndHttp2AndHttp3
.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 protocolos com suporte de um ponto de extremidade.
Para obter mais informações, confira Configurar pontos de extremidade para o servidor Web Kestrel do ASP.NET Core.
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.
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClient
pode ser usado para testes de localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usar HttpClient
para fazer uma solicitação HTTP/3:
HttpRequestMessage.Version
como 3.0 ouHttpRequestMessage.VersionPolicy
como HttpVersionPolicy.RequestVersionOrHigher
.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:
HTTP/3 é um padrão proposto e a terceira versão principal do HTTP. Este artigo discute os requisitos para HTTP/3. HTTP/3 é totalmente compatível no ASP.NET Core 7.0 e posterior.
Importante
Os aplicativos configurados para aproveitar HTTP/3 devem ser projetados para também dar suporte a HTTP/1.1 e HTTP/2.
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.
libmsquic
instalado.libmsquic
é publicado por meio do repositório de pacotes Linux oficial da Microsoft em packages.microsoft.com
. Para instalar esse pacote:
packages.microsoft.com
. Confira Repositório de Software do Linux para Produtos da Microsoft para obter instruções.libmsquic
usando o gerenciador de pacotes da distribuição. Por exemplo, apt install libmsquic=1.9*
no Ubuntu.Observação: .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.
No momento, não há suporte para HTTP/3 no macOS, mas pode estar disponível em uma versão futura.
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:
HttpProtocols.Http1AndHttp2AndHttp3
.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 protocolos com suporte de um ponto de extremidade.
Para obter mais informações, confira Configurar pontos de extremidade para o servidor Web Kestrel do ASP.NET Core.
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.
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClient
pode ser usado para testes de localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usar HttpClient
para fazer uma solicitação HTTP/3:
HttpRequestMessage.Version
como 3.0 ouHttpRequestMessage.VersionPolicy
como HttpVersionPolicy.RequestVersionOrHigher
.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:
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 uma versão prévia do recurso. A especificação HTTP/3 não está finalizada e podem existir problemas comportamentais ou de desempenho em HTTP/3 com o .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 problemas forem identificados em HTTP/3, recomendamos desabilitá-lo até que os problemas sejam resolvidos em uma versão futura do ASP.NET Core. Problemas significativos são relatados no repositório de comunicados do GitHub.
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.
libmsquic
instalado.libmsquic
é publicado por meio do repositório de pacotes Linux oficial da Microsoft em packages.microsoft.com
. Para instalar esse pacote:
packages.microsoft.com
. Confira Repositório de Software do Linux para Produtos da Microsoft para obter instruções.libmsquic
usando o gerenciador de pacotes da distribuição. Por exemplo, apt install libmsquic=1.9*
no Ubuntu.Observação: .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.
No momento, não há suporte para HTTP/3 no macOS, mas pode estar disponível em uma versão futura.
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:
HttpProtocols.Http1AndHttp2AndHttp3
.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 protocolos com suporte de um ponto de extremidade.
Para obter mais informações, confira Configurar pontos de extremidade para o servidor Web Kestrel do ASP.NET Core.
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.
Os navegadores não permitem certificados autoassinados em HTTP/3, como o certificado de desenvolvimento Kestrel.
HttpClient
pode ser usado para testes de localhost/loopback no .NET 6 ou posterior. A configuração extra é necessária ao usar HttpClient
para fazer uma solicitação HTTP/3:
HttpRequestMessage.Version
como 3.0 ouHttpRequestMessage.VersionPolicy
como HttpVersionPolicy.RequestVersionOrHigher
.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 não-op (não faz nada):
Chamar as seguintes implementações de Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps
gera um erro ao usar 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:
Comentários do ASP.NET Core
O ASP.NET Core é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
19 de nov., 23 - 21 de nov., 23
Participe de sessões online no Microsoft Ignite criadas para expandir suas habilidades e ajudá-lo a lidar com os problemas complexos de hoje.
Registrar agoraTreinamento
Módulo
Implementar operações HTTP do Razor Pages no ASP.NET - Training
Implementar operações HTTP do Razor Pages no ASP.NET