Обновите свою игру веб-разработки с помощью HTTP/3 в .Net 6
11 марта 2023 г.HTTP/3 — это последняя версия протокола HTTP, предназначенная для повышения производительности и безопасности веб-приложений. HTTP/3, построенный на основе протокола QUIC, обеспечивает более быструю и безопасную связь между клиентом и сервером.
Цели обучения
- Как включить HTTP/3 в .NET 6
- Как это может повысить производительность веб-приложения?
Начало работы
Шаг 1. Установка необходимых пакетов
Первым шагом является установка необходимых пакетов для включения HTTP/3 в приложении .NET 6.
С помощью консоли диспетчера пакетов с помощью следующей команды:
Install-Package Microsoft.AspNetCore.Server.Kestrel.Transport.Experimental.Quic
Шаг 2. Настройка Kestrel для использования QUIC
Следующий шаг — настроить Kestrel, веб-сервер, входящий в состав .NET 6, для использования QUIC.
Это можно сделать, изменив файл конфигурации приложения.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.Listen(IPAddress.Any, 5001, listenOptions =>
{
#pragma warning disable CA2252 // This API requires opting into preview features
listenOptions.Protocols = HttpProtocols.Http3;
#pragma warning restore CA2252 // This API requires opting into preview features
listenOptions.UseHttps();
});
});
builder.Services.AddControllers();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Приведенный выше код настраивает Kestrel для прослушивания порта 5001 с использованием протокола HTTP/3.
Шаг 3. Тестирование приложения
HttpClient был обновлен, чтобы включить поддержку HTTP/3, но его необходимо настроить с помощью флага времени выполнения. Включите следующее в файл .csproj, чтобы разрешить HTTP/3
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Net.SocketsHttpHandler.Http3Support" Value="true" />
</ItemGroup>
В качестве версии запроса необходимо указать HTTP/3:
// See https://aka.ms/new-console-template for more information
using System.Net;
var client = new HttpClient();
client.DefaultRequestVersion = HttpVersion.Version30;
client.DefaultVersionPolicy = HttpVersionPolicy.RequestVersionExact;
var resp = await client.GetAsync("https://localhost:5001/");
var body = await resp.Content.ReadAsStringAsync();
Обратная совместимость
HTTP/3 основан на протоколе QUIC, который широко поддерживается только некоторыми устройствами и сетями.
Поэтому важно иметь обратную совместимость с предыдущими версиями протокола HTTP, такими как HTTP/2 и HTTP/1.1, и гарантировать, что веб-приложения могут по-прежнему быть доступны пользователям, использующим старые браузеры, операционные системы или сети, которые не поддерживают поддержка HTTP/3.
Это можно сделать, изменив файл конфигурации приложения следующим образом.
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.Listen(IPAddress.Any, 5001, listenOptions =>
{
#pragma warning disable CA2252 // This API requires opting into preview features
listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
#pragma warning restore CA2252 // This API requires opting into preview features
listenOptions.UseHttps();
});
});
Кроме того, обратная совместимость гарантирует, что более широкая аудитория может получить доступ к веб-приложениям, включая пользователей со старыми устройствами и сетями. Это расширяет охват веб-приложений и обеспечивает лучший пользовательский интерфейс для пользователей с ограниченным доступом к новым технологиям.
Заключение
Итак, включение HTTP/3 в вашем приложении .NET 6 — это простой процесс, который может значительно повысить производительность и безопасность вашего веб-приложения. Использование HTTP/3 обеспечивает более удобный пользовательский интерфейс для ваших клиентов за счет более быстрого времени загрузки, меньшей задержки и повышенной надежности.
Ссылки
Также опубликовано здесь .
Оригинал