asp.net core 6 新特性,支持HTTP/3 端点发布

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net core 6 新特性,支持HTTP/3 端点发布相关的知识,希望对你有一定的参考价值。

???? 序言

Http3 协议构建在UDP的基础上,是的,就这么神奇,以前被誉为不稳定大神的UDP,现在承担起可靠通讯协议的底层协议。为了消除UDP的不确定性,在UDP协议之上,新增了QUIC协议。

使用QUIC协议代替TCP协议中关于可靠、流量控制的部分,因此使得HTTP3可以可靠的进行通讯传输。

在.net 6预览版的asp.net core 上,微软添加了对 HTTP/3 的支持,这为 Web 带来了很多改进。HTTP3 带来了更快的连接设置以及在低质量网络上的改进性能。

从中我们也能看出微软对.net 6给予的厚望。

Microsoft 现在添加了对 HTTP/3 的支持以及为 HTTP/3 配置 TLS (https) 的支持。

???? 1. HTTP/3  TLS 配置

让我们看看如何使用以下命令在小型 MVC 应用程序中配置 HTTP/3:

dotnet new mvc -o Http3Tls -n Http3Tls
cd Http3Tls
code .

 此命令创建一个 MVC 应用程序,切换到项目文件夹并打开 VSCode。我们需要在Program.cs中配置 HTTP/3,就如下面代码所示:



public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }


    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder
                    .ConfigureKestrel((context, options) =>
                    {
                        options.EnableAltSvc = true;
                        options.Listen(IPAddress.Any, 5001, listenOptions =>
                        {
              // Enables HTTP/3
                            listenOptions.Protocols = HttpProtocols.Http3;
                            // Adds a TLS certificate to the endpoint
                            listenOptions.UseHttps(httpsOptions =>
                            {
                                httpsOptions.ServerCertificate = LoadCertificate();
                            });
                        });
                    })
                    .UseStartup<Startup>();
            });
}


这里标志EnableAltSvc为浏览器设置了一个 Alt-Svc 标头。

以告诉这是现有 HTTP/1 或 HTTP/2 的替代服务。这需要告诉浏览器,替代服务 - 在这种情况下是 HTTP/3 - 应该像现有服务一样对待。

这需要一个 https 连接来保证安全和可信。

使用listenOptions.UseHttps配置ssl的证书。

使用 listenOptions.Protocols = HttpProtocols.Http3; 激活Http3 服务。

是的,就这么简单,一个适应http3协议的服务已经搭建完成。

???? 2 http/3 优势小结

由于Http/3协议,基于 UDP, 其避免了 TCP、Http/1、HTTP/2 的经典问题,实现了一个安全高效可靠的 HTTP 通信协议。

凭借着 0 RTT 建立连接、平滑的连接迁移、基本消除了队头阻塞,并增强了流量控制等特性, 在绝大多数场景下获得了比 HTTP/2 更好的效果。

因此 Http /3 必将是 http协议的未来。

相关链接:

以上是关于asp.net core 6 新特性,支持HTTP/3 端点发布的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Core 7 preview 4 重磅新特性--限流中间件

ASP.NET Core 2.0 新特性全新体验

ASP.NET Core1.0 带来的新特性

在ASP.NET和ASP.NET Core之间互相通讯的Rpc

[Asp.Net Core] Autofac支持AOP-2

[Asp.Net Core] Autofac支持AOP-2