当前位置:首页 > IT科技类资讯

.NET 6 中的 HTTP/3 支持

根据官方博客的中P支介绍,.NET 6 提供了对 HTTP/3 的中P支预览支持,主要包括以下场景:

在 Kestrel、中P支HTTP.Sys 和 IIS 中,中P支用于 ASP.NET 服务器 在 HttpClient 中发送 outbound 请求 面向 gRPC

.NET 开发团队表示,中P支HTTP/3 的中P支 RFC 还没有最终确定,但他们还是中P支将 HTTP/3 引入到了 .NET 6 中,方便用户开始进行试验,中P支但这只是中P支 .NET 6 的预览功能——因为它不符合 .NET 6 其余部分的质量标准。因此需要与其他服务器和客户端进行更广泛的中P支测试以确保兼容性,云南idc服务商尤其是中P支在边界情况下。

试用 HTTP/3

如需使用 HTTP/3,中P支需安装 MSQuic 及其 TLS 依赖项。中P支

目前只支持 Windows 和 Linux,中P支.NET 6 暂不支持 macOS 上的中P支 HTTP/3,主要是因为缺少与 QUIC 兼容的 TLS API。.NET 团队认为,由于 .NET 在 macOS 上使用 SecureTransport 来实现其 TLS 实现,它尚未包含支持 QUIC 握手的 TLS API。虽然可以使用 OpenSSL,但他们认为最好不要引入未与操作系统的证书管理集成的云服务器提供商附加依赖项。

示例

使用 HTTP/3 的 gRPC

gRPC 是一种使用 protobuf 序列化格式的 RPC 机制。gRPC 通常使用 HTTP/2 作为其传输。HTTP/3 使用了相同的语义,因此几乎不需要更改即可使其工作。gRPC over HTTP/3 由 .NET 团队提出,目前还不是一个标准。

ASP.NET Server 

var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddGrpc(); builder.WebHost.ConfigureKestrel((context, options) => {    options.Listen(IPAddress.Any, 5001, listenOptions =>   {      listenOptions.Protocols = HttpProtocols.Http3;     listenOptions.UseHttps();   }); }); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) {  app.UseDeveloperExceptionPage(); } app.MapGrpcService<GreeterService>(); app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909"); app.Run(); 

Client 

using Grpc.Net.Client; using GrpcService1; using System.Net; var httpClient = new HttpClient(); httpClient.DefaultRequestVersion = HttpVersion.Version30; httpClient.DefaultVersionPolicy = HttpVersionPolicy.RequestVersionExact; var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions() {  HttpClient = httpClient }); var client = new Greeter.GreeterClient(channel); var response = await client.SayHelloAsync( new HelloRequest {  Name = "World" }); Console.WriteLine(response.Message); 

详情查看官方博客。

本站新闻禁止未经授权转载,违者依法追究相关法律责任。授权请联系:oscbianji#oschina.cn

本文标题:.NET 6 中的 HTTP/3 支持

本文地址:https://www.oschina.net/news/161364/http-3-support-in-dotnet-6

源码库

分享到:

滇ICP备2023006006号-16